Javascript Node.js POST请求有数据,但在mongoDB中我只看到id,没有看到数据
正如你在图片中看到的,它什么也保存不了。 POST请求正在工作,但我发送到后端的数据只保存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
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”}]
,但请记住,如果这些对象不共享相同的结构,则绝对不建议以这种方式组织数据。那么,哪种方法是最好的?见我的另一个问题。