Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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 无法设置属性';函数名';未定义的_Javascript_Node.js - Fatal编程技术网

Javascript 无法设置属性';函数名';未定义的

Javascript 无法设置属性';函数名';未定义的,javascript,node.js,Javascript,Node.js,我正在通过观看这个视频学习MEVN 我模仿向const User添加一个函数,如下所示: module.exports = (sequelize, Datatypes) =>{ const User = sequelize.define('User', { email:{ type:Datatypes.STRING, unique: true }, password:Datatypes.STRING }, { hooks:{

我正在通过观看这个视频学习MEVN

我模仿向const User添加一个函数,如下所示:

module.exports = (sequelize, Datatypes) =>{
  const User = sequelize.define('User', {
    email:{
      type:Datatypes.STRING,
      unique: true
    },
    password:Datatypes.STRING
  }, {
    hooks:{
      beforeCreate: hashPassword,
      beforeUpdate: hashPassword,
      beforeSave: hashPassword
    }
  })

  User.prototype.comparePassword = function(password) {
    return bcrypt.compareAsync(password, this.password)
  } 

  return User
}
但它总是显示
TypeError:无法设置未定义的属性“comparePassword”

(教程视频对此没有问题。)

我尝试使用“User.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


希望有人能帮我,谢谢

您使用的是较旧版本的sequelize,它还不支持使用原型扩展实例

根据旧方法,将提供
instanceMethods

const Model = sequelize.define('Model', {
    ...
}, {
    classMethods: {
        associate: function (model) {...}
    },
    instanceMethods: {
        someMethod: function () { ...}
    }
});

4.X的工作方式与您试图使其工作的方式相同。

用户
对象未定义
用户
不是对象…请不要使用文本图片。。。两者都可以在编辑器中进行复制、粘贴和格式化。图片使复制有问题的代码用于测试变得更加困难。好的,我现在编辑它,您使用的是哪个版本的sequelize?你确定你用的是4.x吗?您可能正在使用不支持这种扩展实例方式的旧版本。