javascript - 无法从 User.js 中找到方法
问题描述
我对快递的方法有一些问题。这是错误代码
index.js
app.post('/login', function (req, res) {
User.findOne({ email: req.body.email }, function (err, user) {
if (!user) {
return res.json({
loginSuccess: false,
message: "이메일이 존재하지 않습니다"
})
}
user.comparePassword(req.body.password, function (err, isMatch) {
if (!isMatch) {
return res.json({
loginSuccess: false,
message: "비밀번호가 틀립니다."
})
}
user.generateToken(function (err, user) {
if (err) return res.status(400).send(err);
res.cookie("x_auth", user.token)
.status(200)
.json({ loginSuccess: true, userId: user._id })
})
})
})
})
用户.js
userSchema.method.comparePassword = function (plainPassword, cb) {
bcrypt.compare(plainPassword, this.password, function (err, isMatch) {
if (err) return cb(err)
cb(null, isMatch)
})
}
错误
TypeError: user.comparePassword is not a function at /Users/baeyungug/Documents/Nodejs_React_basic/index.js:58:18 at /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model.js:4870:16 at /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model.js:4870:16 at /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16 at /Users /baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model.js:4893:21 在 /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/query.js:4400:11 在 /Users/baeyungug/Documents /Nodejs_React_basic/node_modules/kareem/index.js:136:16 at processTicksAndRejections (internal/process/task_queues.js:79:11) 在函数实例上发出“错误”事件:在 /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model.js:4872:13 在 /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16 [。 .. 匹配原始堆栈跟踪的行 ...] 在 processTicksAndRejections (internal/process/task_queues.js:79:11)
解决方案
它应该是
userSchema.methods.comparePassword = function(plainPassword, cb){
bcrypt.compare(plainPassword, this.password, function(err, isMatch) {
if(err) return cb(err)
cb(null,isMatch)
})}
将方法更改为方法
推荐阅读
- pycharm - PyCharm:如何将一个项目用作另一个项目的依赖项?
- javascript - 角度路由器如何从父组件调用子组件
- javascript - axios multipart/form-data - 获取估计的编译时间
- r - 相对于组内的整体变化创建滞后
- sql-server - SQL Server - CLR 函数用户权限
- spring-boot - CompletableFuture 和 MockMVC
- python - 在 plotly 中绘制分组的熊猫数据
- postgresql - 如何在 postgresql 中跟踪 sql 查询
- .net - 将 .net 核心 DLL 编译为 .net 框架 DLL
- xamarin - 如何在 Xamarin.iOS 中注册自定义文件类型关联?