使用bcrypt节点时未显示回调错误



我已经创建了一个名为encrypt.js的节点库文件。

其中是使用bcrypt nodejs 创建的一些函数

var bcrypt = require('bcrypt-nodejs');
exports.cryptPassword = function(password, callback) {
bcrypt.genSalt(10, function(err, salt) {
if (err) return callback(err);
else {
bcrypt.hash(password, salt, function(err, hash) {
return callback(err, hash);
});
}
});
};
exports.comparePassword = function(password, userPassword, callback) {
bcrypt.compare(password, userPassword, function(err, isPasswordMatch) {
if (err) return callback(err);
else return callback(null, isPasswordMatch);
});
};

当我现在从server.js文件中使用cryptPassword时,它显示了一个来自bcrypt-nodejs库的错误,声明为"no callback function was given">

我在我的通话中添加了一个功能,如下

var encryptedPassword =  encrypt.cryptPassword(req.body.user.password, function (err, salt){
if(err) {throw err};
console.log('hlllll');
});

有人能帮忙吗?

语法:bcrypt.hash(data, salt, progress, cb)

您必须有两个回调。

此处文档:

https://npmjs.org/package/bcrypt-nodejs


更新:

您可以使用包bcrypt而不是bcrypt-nodejs

你的代码会起作用:

bcrypt.hash(password, salt, function(err, hash) {
return callback(err, hash);
});

如果你喜欢的话,你实际上可以使用bcyrpt nodejs,但你必须在bCrypto.js 中编辑以下部分

if(!callback) {
throw "No callback function was given."
}

并将其替换为

if(typeof callback == 'undefined') {
callback = progress;
progress = null;
}

然后在你的代码中,只需要这个;

require('bcrypt').hash(values.password,null,null,function passwordEncrypted(err,password){

使用bcyrpt.compareSync而不是bcypt.com.pare。它不需要回调

最新更新