Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实例方法don';我不在续集4上工作_Javascript_Node.js_Sequelize.js - Fatal编程技术网

Javascript 实例方法don';我不在续集4上工作

Javascript 实例方法don';我不在续集4上工作,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,型号代码如下: 'use strict'; const bcrypt = require('bcrypt'); module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { email: { type: DataTypes.STRING, allowNull: false, unique: true, }, passw

型号代码如下:

'use strict';
const bcrypt = require('bcrypt');

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    email: {
      type: DataTypes.STRING,
      allowNull: false,
      unique: true,
    },
    password: {
      type: DataTypes.STRING,
      allowNull: false,
    },
  }, {
    hooks: {
      beforeCreate: user => {
        const salt = bcrypt.genSaltSync();

        user.password = bcrypt.hashSync(user.password, salt);
      }
    },
  });

  User.prototype.isPasswordValid = password => {
    console.log('current_email');
    console.log(this.email);
    //return bcrypt.compareSync(password, this.password);
  };

  User.associate = models => {
    // associations can be defined here
  };

  return User;
};
当我执行此代码时:

  const user = await User.findOne({ where: { email } });

  if (!user || !user.isPasswordValid(password)) {
    ctx.body = {
      result: RESULT_CODE.ERROR,
      error: ERROR_CODE.UNAUTHORIZED,
    };

    return;   
  }
我看到以下输出:

current_email
undefined
我不明白为什么我不能访问用户字段

版本:

    "sequelize": "4.3.1",
    "sequelize-cli": "4.0.0"

尝试使用常用函数,而不是箭头函数

User.prototype.isPasswordValid = function(password) {
    console.log('current_email');
    console.log(this.email);
    //return bcrypt.compareSync(password, this.password);
  };