首页 文章

变量未在Express中使用bcryptjs定义

提问于
浏览
0

我尝试使用Express和bcrypt在我的应用程序中设置注册功能,但我遇到了问题 . 我按照步骤来加密我的密码但我的变量newUser没有定义 . 有什么问题 ?

/

/ Register Form POST
const bcrypt = require('bcryptjs');
    router.post('/register', (req, res) => {
        const newUser = newUser ({
            name: req.body.name,
            surname: req.body.surname,
            email: req.body.email,
            password: req.body.password
        });
        bcrypt.genSalt(10, (err, salt) => {
            bcrypt.hash(newUser.password, salt, (err, hash) => {
                if(err) throw err;
                newUser.password = hash;
                newUser.save()
                    .then(user => {
                        req.flash('success msg', 'Vous êtes maintenant enregistré et pouvez vous connecter.');
                        res.redirect('/app');
                    })
                    .catch(err => {
                        console.log(err);
                        return;
                    });
            });
        });
    });

2 回答

  • 1

    看起来像一个简单的拼写错误 . const newUser = newUser ({ 应为 const newUser = new User({

    new是一个关键字,它从类创建对象,在本例中为model

  • 0

    您将 newUser 指定为函数 . 但是,如果 newUser 是一个猫鼬模式,那么正确的方法是:

    const newUser = new newUser({
     name: req.body.name,
     surname: req.body.surname,
     email: req.body.email,
     password: req.body.password
    

    });

相关问题