我正在尝试使用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
。
我做错了什么?
答案 0 :(得分:0)
我自己找到了解决方案。
在{/ 1}}和userSchema.plugin(...)
之后,userSchema.statics = {…}
来电必须 。
我猜userSchema.methods = {…}
尝试使用.plugin(...)
或statics
属性(或两者),并将它们初始化为新对象。然后,当我们拨打methods
(或userSchema.statics = {…}
)时,它会删除methods
创建的内容。