Javascript Node.js POST请求有数据,但在mongoDB中我只看到id,没有看到数据

Javascript Node.js POST请求有数据,但在mongoDB中我只看到id,没有看到数据,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,正如你在图片中看到的,它什么也保存不了。 POST请求正在工作,但我发送到后端的数据只保存ID为的新对象,而不是我提供的数据 我没有任何错误或东西的状态是好的。 我正在和邮递员测试这个 我将添加一些代码 这就是模型 const mongoose = require("mongoose"); const dataModelScheme = new mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, pe

正如你在图片中看到的,它什么也保存不了。 POST请求正在工作,但我发送到后端的数据只保存ID为的新对象,而不是我提供的数据

我没有任何错误或东西的状态是好的。 我正在和邮递员测试这个

我将添加一些代码

这就是模型

const mongoose = require("mongoose");

const dataModelScheme = new mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    personalData: {
        _id: mongoose.Schema.Types.ObjectId,
        title: String,
        firstName: String,
        lastName: String,
        email: String,
        birthday: String,
        telephone: Number,
        driveLicense: String,
        status: Number,
        employmentType: String,
        job: String,
    },
    skills: {
        _id: mongoose.Schema.Types.ObjectId,
        name: String,
        startDate: Number,
        endDate: Number,
        description: String,
    },
    user: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "User"
    },
});
module.exports = mongoose.model('ModelSchema', dataModelScheme);

module.exports = {
    async store(req, res) {
        const modelData = new ModelData({
            _id: new mongoose.Types.ObjectId(),
            personalData: {
                _id: new mongoose.Types.ObjectId(),
                firstName: req.body.firstName,
            },
            skills: {
                _id: new mongoose.Types.ObjectId(),
                name: req.body.name,
            },
        });
        modelData.save().then(result => {
            res.status(201).json({
                message: "Handling POST request to modelData",
                modelData: result
            });
        }).catch(error => {
            res.status(500).json({error: error});
        });
    },
}
我正试着和邮递员这样

POST->http://localhost:5000/data

const express = require('express');
const routes = express.Router();
routes.post("/data", ModelDataController.store);
module.exports = routes;
这是我试图随请求发送的JSON文件

{
    "personalData": {
        "firstName": "Max"
    },
    "skillks": {
        "name": "Muster"
            }

}

您可以使用
req.body.firstName
而不是
req.body.personalData.firstName
名称
属性也是如此


你把邮递员放在raw下面的内容将与你的
req.body

相对应,哪种方法最好?换成这个
req.body.personalData.firstName
如果是这样,那么上面的
personalData
就没有意义了?这完全取决于数据的外观。在您的情况下,如果您通过邮递员发送JSON,您必须使用
personalData
,因为这就是您构建它的方式。如果您只传递一个属性,那么您只需删除
personalData
。如果您发送更多数据,那么您希望通过使用类似JSON树的表示以某种方式对其进行结构化。专注于使您的数据结构可读且易于理解。(注:如果这个答案解决了你的问题,别忘了把它标记为解决)你已经回答了我的问题,这很有效,但如果可以的话,我还有一个小问题。数组中如何可能有多个对象?Controllerer将如何更改POST请求中的JSON?标准的对象数组看起来像这样
[{“foo”:“bar”},{“foo”:“baz”}]
,但请记住,如果这些对象不共享相同的结构,则绝对不建议以这种方式组织数据。那么,哪种方法是最好的?见我的另一个问题。