在顶部我有这个:
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
覆盖并成为对象。
如果我一个接一个地移动字段的唯一方法(因为我有很多字段)
答案 0 :(得分:1)
简单地这样做:
var invoiceRecord = new invoiceModel(req.body.invoice)
但请确保对象的键名与mongoose中的键名相同。例如:如果您的对象如下:{name: 'Kamesh'}
那么您的猫鼬模型应该在其模型中包含字段“name”。因此,无论何时传入整个对象,mongoose都会知道将哪个值放入其数据库中的哪个字段。