Node.js 使用req.body解析器发布对象数组
我试图发布一个包含对象数组的简单请求。我已经创建了一个模型,并按照模型传递数据。 我在访问身体参数时遇到问题,因为它包含一系列数据。 我能够通过req.body.tasks[0]存储行项目数据 这不是在mongodb中存储详细信息的标准方式。 我正在寻找一种在mongodb中存储数据数组的标准方法 控制器:Node.js 使用req.body解析器发布对象数组,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我试图发布一个包含对象数组的简单请求。我已经创建了一个模型,并按照模型传递数据。 我在访问身体参数时遇到问题,因为它包含一系列数据。 我能够通过req.body.tasks[0]存储行项目数据 这不是在mongodb中存储详细信息的标准方式。 我正在寻找一种在mongodb中存储数据数组的标准方法 控制器: let createBug = (req, res) => { console.log(req.body.tasks[0].subtask[0].description) f
let createBug = (req, res) => {
console.log(req.body.tasks[0].subtask[0].description)
for (var key in req.body) {
if (req.body.hasOwnProperty(key)) {
item = req.body[key];
console.log(item);
}
}
const createBug = new listModel({
title: req.body.title,
tasks: [{
title: req.body.tasks[0].title,
description: req.body.tasks[0].description,
subtask: [{
description: req.body.tasks[0].subtask[0].description
}]
}]
}).save((error, data) => {
if (data) {
let apiResponse = response.generate(false, null, 201, data);
res.status(201).send(apiResponse);
} else {
let apiResponse = response.generate(true, error, 404, null);
res.status(404).send(apiResponse);
}
});
};
正文:
型号:
const mongoose = require("mongoose");
const mySchema = mongoose.Schema;
let subtask = new mySchema({
description: String
})
let taskdata = new mySchema({
title: String,
description: String,
subtask: [subtask]
});
let listSchema = new mySchema({
title: {
type: String,
require: true,
},
tasks: [taskdata],
owner: {
type: mongoose.Schema.Types.ObjectId,
ref: "users",
}
});
module.exports = mongoose.model("list", listSchema);
我觉得你把这里的事情复杂化了一点。请求主体与模型定义完全匹配,因此您只需将
req.body
对象传递给您的mongoose模型:
const createBug = new listModel(req.body).save((error, data) => { ... }
const createBug = new listModel(req.body).save((error, data) => { ... }