javascript - Mongoose save() 不是函数

标签 javascript node.js mongodb mongoose

在我的 app.js 中,我需要我的模型

var User = require('./models/user');
app.post('/user/add', function(req,res,next){
  var newUser = new User();
  newUser.add(req.body.name, function(response){
    res.json(response);
  })
});

我的模型 (user.js) 看起来像这样

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
    name: String
});
var User = module.exports = mongoose.model('user', userSchema);
module.exports.add = function(name,callback){
    User.save({name:name}).exec(callback);
}

但是我得到了 newUser.add is not a function 的错误?

最佳答案

如果你想给 Mongoose 模型添加实例方法,你应该使用instance methods语法:

var mongoose = require('mongoose');

var UserSchema = new mongoose.Schema({
    name: String
});

// Instance methods
UserSchema.methods.add = function(name, callback){
    this.name = name;
    return this.save(callback);
}

module.exports = mongoose.model('User', UserSchema);

关于javascript - Mongoose save() 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787968/

相关文章:

javascript - 如何更新 Lollipop 图表的填充和排序值?

javascript - 主干js困惑

javascript - 我怎样才能得到 Node 和 Jade 中 promise 的结果

mongodb - 计算每个文档的子文档

mongodb - 通过 geoNear 获取子文档 - MongoDB

javascript - HTML5 视频在 Safari 上寻找 'ended' 上的视频中间位置

javascript - jQuery 2.x 如何唯一标识一个元素(在 .data() 中)

javascript - 查找最后一条导入语句的索引

javascript - 如何在azure网站子目录中运行node.js应用程序

mongodb - 字段和模式级别的 Mongoose 索引