У меня проблема с методом экспресс-доставки. Вот код ошибки
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 })
})
})
})
})
User.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 не является функцией в /Users/baeyungug/Documents/Nodejs_React_basic/index.js:58:18 в /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model16js:4870 /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/model.js:4870:16 в /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/helpers/promiseOrCallback. 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:4400eyung / Users / Documents / Users / Users / Users / Users / Users / Users / Users / Users / Users / Users / Users / Users / Users / /Nodejs_React_basic/node_modules/kareem/index.js:136:16 в processTicksAndRejection (internal / process / task_queues.js: 79: 11) Выдало событие «ошибка» в экземпляре функции в: at / Users / baeyungug / Documents / Nodejs_React_basic /_modules /mongoose/lib/model.js:4872:13 в /Users/baeyungug/Documents/Nodejs_React_basic/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16 [… строки, соответствующие исходной трассировке стека …] в processTicksAndRejection (internal / process / task_queues.js: 79: 11)
Должен быть
измените метод на методы