嗯,我有一个概念上的问题和一个真正的错误...我正在研究库存模块的概念,很简单,它包含两个模型:
库存模型只包含"项目"字段,该字段只是对真实项目对象模型的引用(对于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
我的概念非常简单,我测试了模型的要求和输出,看起来都很好,所以,任何人都有一些想法来解决这个问题吗?
答案 0 :(得分:0)
错误:
发送后无法设置标头。
如果您在架构和api文件中错误地或在HTML页面中发送字段名称并且req.body
参数名称不正确,则会出现错误。
另一种方法可以尝试使用:
app.use(bodyParser.json({limit: '5mb'}));
在server.js文件中。