F CC - проблема с глюками. Не могу получить req.body - PullRequest
0 голосов
/ 04 марта 2020

Проблема в том, что в моем втором посте я не могу получить req.body. Ни console.log, ни req.body не показывают что-либо.

В первом посте-запросе все, кажется, работает просто отлично. И это также работало до того, как я начал переупорядочивать код. Я даже меняю тип ответа на отправку, но получаю старое сообщение (статус в порядке).

Я не понимаю, что происходит. Любая помощь, пожалуйста?

Сбой: https://uatyroni-exercise-tracker.glitch.me - живой код приложения: https://glitch.com/~uatyroni-exercise-tracker

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const shortid = require('shortid');
const cors = require("cors");

//Setting MongoDB
const mongoose = require("mongoose");
mongoose.connect(process.env.MONGO_URI);

app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static("public"));

app.get("/", (req, res) => {
    res.sendFile(__dirname + "/views/index.html");
});

//Defining Schema & Model
let Schema = mongoose.Schema;
let userSchema = new Schema({
    id: { type: String, unique: true, default: shortid.generate },
    user: String,
    exercise: [{
        description: String,
        duration: Number,
        date: {}
    }]
});
let userModel = mongoose.model("Users", userSchema);

let exerciseSchema = new Schema({
    userId: String,
    description: String,
    duration: Number,
    date: String
});
let exerciseModel = mongoose.model("Exercies", exerciseSchema);

//THE POST PROCESS

app.post("/api/exercise/new-user", (req, res) => {
    let userName = req.body.username;
    let userNew = new userModel({ user: userName });

    userModel
        .find()
        .exec()
        .then(data => {
            data = data.filter(obj => obj["user"] === userName);
            console.log("I am the data: " + data);
            if (data.length === 0) {
                userNew
                    .save()
                    .then(result => {
                        res.json(result);
                    })
                    .catch(err => {
                        console.log(err);
                        res.json({ error: err });
                    });
            } else {
                res.json({ Error: "User is already registered in the database" });
            }
        });
});

app.post("/api/exercise/add", (req, res) => {
    console.log('reqbody is: ' + req.body.description)
    let newDate = '';
    if (req.body.date == '') {
        newDate = new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate();
    }

    let newExercise = {
        description: req.body.description,
        duration: req.body.duration,
        date: newDate
    }

    userModel.findById(req.body.userid, (err, data) => {
        if (data.length == null)
            res.json({
                error: "User is not registered. Please register a user first."
            });
        else {
            res.json(data)
        }
    });
});

// Not found middleware
app.use((req, res, next) => {
    return next({ status: 404, message: "not found" });
});

// Error Handling middleware
app.use((err, req, res, next) => {
    let errCode, errMessage;

    if (err.errors) {
        // mongoose validation error
        errCode = 400; // bad request
        const keys = Object.keys(err.errors);
        // report the first validation error
        errMessage = err.errors[keys[0]].message;
    } else {
        // generic or custom error
        errCode = err.status || 500;
        errMessage = err.message || "Internal Server Error";
    }
    res
        .status(errCode)
        .type("txt")
        .send(errMessage);
});

const listener = app.listen(process.env.PORT || 4000, () => {
    console.log("Your app is listening on port " + listener.address().port);
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...