无法阅读财产'然后' of undefined,bcrypt.hash()

时间:2017-08-04 20:10:39

标签: node.js promise mocha bcrypt

我试图在我的mocha测试的before块中创建一个测试用户,我需要对其进行哈希密码。 Apparently you don't need a done() function if you use promises。我正在实施bcrypt.hash,就像在bcrypt docs中所说的那样:

before(function(){
    //create a user and populate user's first recipes

    //create a User object
    return bcrypt.hash('newt', 10).then(function(err,hash){
        //create the user object
        var user = new User({email:'test@test.io',username:'test',password:hash})
        //save that user
        user.save()
    })
})

但是,当我运行测试时,它会给我一个错误:

TypeError: Cannot read property 'then' of undefined

是什么给出的?感谢。

1 个答案:

答案 0 :(得分:0)

bcrypt.hash('newt',10)没有返回承诺。

请确保您使用的是最新版本的bcrypt和mocha,因为这些软件包的早期版本不支持promises。您也可以尝试重新安装模块。