Node.js mongoose没有方法' save'

时间:2015-02-21 11:22:14

标签: node.js mongodb mongoose

所以,这是错误:

/dev/sth-srv/app/services/notify.js:23

Notify.save(function() {
 TypeError: Object function model(doc, fields, skipId) {
  if (!(this instanceof model))
     return new model(doc, fields, skipId);
  Model.call(this, doc, fields, skipId);
} has no method 'save'

这是模型(日期是字符串化的,因为我想确保我在这里没有做错任何事情):

var mongoose = require('mongoose');
var notifySchema = new mongoose.Schema({
    to : String,
    type : String,
    date : String,
    what : String,
    who : String,
    status : String
});
mongoose.model('Notify', notifySchema);
module.exports = mongoose.model('Notify', notifySchema);

这是达到保存方法的对象

{ 
type: 'vote',
date: 'Sat Feb 21 2015 11:33:58 GMT+0100 (CET)',
what: 'asdgf12',
who: 'demouser',
status: 1,
to: 'demouser' 
}

这是要求保存:

var notify = new Notify(notifyBody);
Notify.save(function() {
    /.../
});

让我无法弄明白的是,它在很多情况下适用于其他型号,但不适用于其他型号。

最后重要信息: 此save func不是直接从路由调用,而是从另一个带有module.exports的文件调用。 (模型是必需的)。

1 个答案:

答案 0 :(得分:1)

您需要在使用new关键字而不是模型创建的对象上调用save。

var notify = new Notify(notifyBody);

//save needs to be called on notify, not Notify
notify.save(function() {
    /.../
});