将数据推送到mongoose中的数组模型中

时间:2014-12-14 20:34:11

标签: javascript node.js mongodb mongoose

嗯,我有一个概念上的问题和一个真正的错误...我正在研究库存模块的概念,很简单,它包含两个模型:

  • 广告
  • 项目

库存模型只包含"项目"字段,该字段只是对真实项目对象模型的引用(对于populete),您知道items: [type: String, ref: 'Item']

Item对象是真正的数据容器,它包含所有数据(name,itemCode,description,disponibility,presence ...等等)。这个概念中的问题让我感到困惑。

创建项目时,需要将其推入数组" items"库存模型文档,我编码这个片段,但它找回了一个错误:

var inventario = new Inventario(); //The inventory document instance

var inventarios = router.route('/inventarios');

inventarios.post(function(req, res) {
// itamdata object
var nuevoItem = {
    _id: req.body._id,
    descripcion: req.body.descripcion,
    costo: req.body.costo,
    precioMin: req.body.precioMin,
    precioMax: req.body.precioMax,
    existencia: req.body.existencia,
    disponible:req.body.disponible
  };
  // Create a new item
  Item.Create(nuevoItem, function(err, item) {
    if(err) {
      res.status(500).json({
        msg: 'Problema interno con la base de datos',
        error: err
      });
    }
    // call push from push method of documents array
    inventario.items.push({ _id: nuevoItem._id });

    res.status(200).json({msg: 'Item Creado', token: item});
  }); // fin Item.Create

}); //fin inventarios.post

错误是:/home/nano/Dev/JS/OMI/node_modules/express/lib/router/index.js:482 this.stack.push(layer); ^ TypeError: Cannot call method 'push' of undefined

我的概念非常简单,我测试了模型的要求和输出,看起来都很好,所以,任何人都有一些想法来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

错误:

  

发送后无法设置标头。

如果您在架构和api文件中错误地或在HTML页面中发送字段名称并且req.body参数名称不正确,则会出现错误。
另一种方法可以尝试使用:

app.use(bodyParser.json({limit: '5mb'})); 

在server.js文件中。