Mongoose在静态函数中创建一个新对象

And*_*nov 7 schema mongoose mongodb node.js

如何在模式中定义的静态方法之一中创建新对象?

我基本上有

UserSchema.statics.createUser = function (username, password, cb) { .. }
Run Code Online (Sandbox Code Playgroud)

我希望能够在函数内保存用户对象的新实例.我想var user = new User(...)在该方法中做一些事情,但它当然不起作用,因为尚未创建用户模型.

我该怎么办?

Rob*_*kal 17

当你第一次调用静态函数必将对模型的架构.你可以这样做:

someSchema.static('foo', function() {
    var newUser = new this({
        username: username, 
        password: password,
    });
    newUser.save(cb);
})
Run Code Online (Sandbox Code Playgroud)

请注意,如果您创建静态函数为匿名,脂肪箭头的功能,将无法正确设置.

  • 试过这个,但是说​​"这不是一个构造函数" (2认同)