'没有给出回调功能'使用bcrypt-nodejs时出错

时间:2017-08-09 17:06:44

标签: javascript node.js postgresql

尝试使用Bcrypt-nodejs将加密密码存储在Postgres数据库中,当我们运行代码或运行测试时,我们会收到错误'未处理拒绝没有给出回调函数'。

我们无法找到任何可行的示例,并想知道是否有其他人在努力解决此问题并找到了解决方案?

这是我们模型中的代码:



'use strict';
var bcrypt = require('bcrypt-nodejs');

module.exports = function(sequelize, DataTypes) {
 var User = sequelize.define('User', {
   first_name: DataTypes.STRING,
   last_name: DataTypes.STRING,
   email: DataTypes.STRING,
   password_digest: DataTypes.STRING,
   password: {
     type: DataTypes.VIRTUAL,
     allowNull: false,
     validate: {
       notEmpty: true
     }
   },
   password_confirmation: {
     type: DataTypes.VIRTUAL
   }
 }, {
   classMethods: {
     associate: function(models) {
       // associations can be defined here
     }
   }
 });
 var hasSecurePassword = function(user, options, callback) {
  if (user.password != user.password_confirmation) {
    throw new Error("Password confirmation doesn't match Password");
  }
  bcrypt.hash(user.get('password'), 10, function(err, hash) {
    if (err) { return callback(err); }
    user.set('password_digest', hash);
    return callback(null, options);
  });
 };

 User.beforeCreate(function(user, options, callback) {
  user.email = user.email.toLowerCase();
  if (user.password) {
    hasSecurePassword(user, options, callback);
  } else {
    return callback(null, options); }
 });
 return User;
};




1 个答案:

答案 0 :(得分:1)

您应该使用bcrypt而不是bcrypt-nodejs