把一个json对象放入mongoose模型中,我们得到.save不是一个函数
在顶部我有这个:
var invoiceModel = require('../../models/invoiceModel'); var invoiceRecord = new invoiceModel();
这一切都很好,如果我一个一个地填写发票领域,它的工作。
invoiceRecord.dueDate = someDate invoiceRecord.amount = someAmount etc.. invoiceRecord.save(function (err, res) { etc..
但! 我从req.body
得到整个logging结构当我这样做:
invoiceRecord = req.body.invoice
然后我的invoiceRecord.save
会给这个错误
TypeError: invoiceRecord.save is not a function
我了解它,因为即使您将invoiceRecord
定义为模型,也会被req.body.invoice
覆盖并成为对象。
如果我唯一的方法是逐个移动字段(因为我有很多字段)
只需要这样做:
var invoiceRecord = new invoiceModel(req.body.invoice)
但请确保对象的键名与mongoose中的键名相同。 例如:如果你的对象是这样的: {name: 'Kamesh'}
那么你的mongoose模型应该在模型中有'name'字段。 所以每当你传入整个对象时,mongoose会知道在数据库的哪个字段中放入哪个值。