这是我得到的错误:
错误:数据必须是字符串,盐必须是一个salt字符串或一定数量的回合数。
我编写的代码是使用他们的电子邮件id在我的数据库中重置密码。
如果这不正确,有人可以告诉我如何在Node.js中使用Oracle数据库重置密码吗?
错误在bcrypt.hash行。
下面是完整代码:
最初的回答:这是我遇到错误的部分: 翻译内容:
下面是完整代码:
function changePassword(email, newPassword, callback) {
var oracledb = require('oracledb');
oracledb.outFormat = oracledb.OBJECT;
oracledb.getConnection({
user : '',
password : '',
connectString : ''
},
function(err, connection) {
if (err) {
return callback(new Error(err));
}
bcrypt.hash(newPassword, numSaltRounds, function(err, hash) {
if (err) { return callback(err); }
connection.execute(
' select password as "password" = : hash, ' +
' from jsao_users ' +
' where email = :email ', [hash, email], { autoCommit: true },
function(err, result) {
if (err) {
console.log(err);
doRelease(connection);
return callback(new Error(err));
}
doRelease(connection);
callback(null, result.rowsAffected > 0);
});
});
// Note: connections should always be released when not needed
function doRelease(connection) {
connection.close(
function(err) {
if (err) {
console.error(err.message);
}
});
}
});
}
最初的回答:这是我遇到错误的部分: 翻译内容:
这是我遇到错误的部分:
bcrypt.hash(newPassword, numSaltRounds, function(err, hash) { //this is the line
if (err) { return callback(err); }
connection.execute(
' select password as "password" = : hash, ' +
' from jsao_users ' +
' where email = :email ', [hash, email], { autoCommit: true },
function(err, result) {
if (err) {
console.log(err);
doRelease(connection);
return callback(new Error(err));
}
doRelease(connection);
callback(null, result.rowsAffected > 0);
});
});
numSaltRounds
的值是多少? - Dan McGhan