Express中未使用bcryptjs定义的变量

时间:2018-12-10 09:48:00

标签: node.js express bcrypt

我尝试使用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 个答案:

答案 0 :(得分:1)

您要分配newUser作为函数。 但是,如果newUser是猫鼬模式,则正确的方法是:

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

答案 1 :(得分:0)

看起来像一个简单的错字。 const newUser = newUser ({ 应该是const newUser = new User({

new是一个关键字,它从类(在这种情况下为模型)创建对象