Nodejs:passport-local-mongoose的.plugin(...)什么都不做

时间:2017-07-06 01:02:46

标签: node.js mongoose passport.js passport-local

我正在尝试使用passport-local-mongoose来注册MongoDB数据库中的用户。然而,似乎它没有做到它应该做的事情。

型号:

var userSchema = new mongoose.Schema({
    email: {
        type: String,
        ...
    },
});

userSchema.plugin(passportLocalMongoose, {usernameField: 'email'});

userSchema.statics = {
    ...
}

userSchema.methods = {
    ...
}

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

控制器:

exports.registerAction = async (req, res, next) => {
    const user = new User({ email: req.body.email });
    User.register(user, req.body.password, function() {
        res.send('It works!');
    });

据我了解,Passport应该在用户上实现register方法,但此处User.register会保留undefined

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。

在{/ 1}}和userSchema.plugin(...) 之后,userSchema.statics = {…}来电必须

我猜userSchema.methods = {…}尝试使用.plugin(...)statics属性(或两者),并将它们初始化为新对象。然后,当我们拨打methods(或userSchema.statics = {…})时,它会删除methods创建的内容。