Не удается найти метод из 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 })
            })
        })
    })
})

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)

См. также:  MongoDB - не авторизован в общем кластере, несмотря на роль atlasAdmin
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. 배윤국

    Должен быть

    userSchema.methods.comparePassword = function(plainPassword, cb){
    
    bcrypt.compare(plainPassword, this.password, function(err, isMatch) {
        if(err) return cb(err)
    
        cb(null,isMatch)
    })}
    

    измените метод на методы

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: