Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用req.body解析器发布对象数组_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 使用req.body解析器发布对象数组

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

我试图发布一个包含对象数组的简单请求。我已经创建了一个模型,并按照模型传递数据。 我在访问身体参数时遇到问题,因为它包含一系列数据。 我能够通过req.body.tasks[0]存储行项目数据 这不是在mongodb中存储详细信息的标准方式。 我正在寻找一种在mongodb中存储数据数组的标准方法

控制器:


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) => { ... }