将json对象放入mongoose模型并获取.save不是函数

时间:2017-07-29 09:36:38

标签: node.js mongodb mongoose

在顶部我有这个:

var invoiceModel = require('../../models/invoiceModel');
var invoiceRecord = new invoiceModel();

这一切都很好,如果我逐一填写发票字段,那就可以了。

invoiceRecord.dueDate = someDate
invoiceRecord.amount = someAmount
etc..
invoiceRecord.save(function (err, res) {
etc..

但是!我从req.body获得了整个记录结构 当我这样做时:

invoiceRecord = req.body.invoice

然后我的invoiceRecord.save会出现此错误

TypeError: invoiceRecord.save is not a function

我理解它,因为即使您将invoiceRecord定义为模型,它也会被req.body.invoice覆盖并成为对象。

如果我一个接一个地移动字段的唯一方法(因为我有很多字段)

1 个答案:

答案 0 :(得分:1)

简单地这样做:

var invoiceRecord = new invoiceModel(req.body.invoice)

但请确保对象的键名与mongoose中的键名相同。例如:如果您的对象如下:{name: 'Kamesh'}那么您的猫鼬模型应该在其模型中包含字段“name”。因此,无论何时传入整个对象,mongoose都会知道将哪个值放入其数据库中的哪个字段。