【发布时间】:2020-06-16 12:19:01
【问题描述】:
当我想登录时出现此错误
events.js:189
抛出错误; // 未处理的“错误”事件
^
错误 [ERR_UNHANDLED_ERROR]:未处理的错误。 ('不正确的论点')
在 Function.emit (events.js:187:17)
在 E:\My Drive\src 代码\node.js\Revision\regSys\node_modules\mongoose\lib\model.js:4830:13
在 E:\My Drive\src 代码\node.js\Revision\regSys\node_modules\mongoose\lib\query.js:4390:12
在 process.nextTick (E:\My Drive\src code\node.js\Revision\regSys\node_modules\mongoose \lib\query.js:2869:28) 在 process._tickCallback (internal/process/next_tick.js:61:11)
[nodemon] 应用程序崩溃 - 启动前等待文件更改...
架构 (db.js)
const mongoose = require('mongoose');
const bcrypt = require('bcrypt-nodejs');
const stDB = mongoose.Schema({
email : {
type: String,
required: true
},
password : {
type: String,
required: true
}
});
stDB.methods.hashPassword = function(password){
return bcrypt.hashSync(password, bcrypt.genSaltSync(5));
}
stDB.methods.comparePasswords = (password) => {
return bcrypt.compareSync(password, this.password)
}
module.exports = mongoose.model('db', stDB);
config/passport.js
passport.use('local-signin' , new localStrategy({
usernameField : 'email' ,
passwordField : 'password' ,
passReqToCallback : true ,
} , ( req , email , password , done)=>{
User.findOne({email : email} , (err , user)=>{
if(err){
return done (err)
}
if (! user){
return done( null , false , req.flash('signinError' , 'this user not found'))
}
if (! user.comparePasswords(password)){
return done(null , false , req.flash('signinError' , 'wrong password'))
}
return done(null , user)
})
}))
"bcrypt-nodejs": "0.0.3"
“护照”:“^0.4.0”
“本地护照”:“^1.0.0”
“节点”:“10.16.1”
“快递”:“~4.16.1”
【问题讨论】:
-
检查密码和邮箱是否不为空。
标签: node.js express mongoose passport.js bcrypt