Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Mysql 续写多对多关系:无法读取属性';拆分';未定义的_Mysql_Node.js_Sequelize Cli - Fatal编程技术网

Mysql 续写多对多关系:无法读取属性';拆分';未定义的

Mysql 续写多对多关系:无法读取属性';拆分';未定义的,mysql,node.js,sequelize-cli,Mysql,Node.js,Sequelize Cli,我正在尝试使用Sequelize+nodeJs和现有MySQL数据库创建多对多关系: 以下是我的表格: -“usr”表:usr_id(主键) -中间“usr\U角色”:usr\U id、角色\U id -“角色”表:角色\u id 这是我的模型 “用户”模型: “严格使用”; var bcrypt=require('bcryptjs'); module.exports=函数(sequelize,数据类型){ var User=sequelize.define('User'{ 乌斯里德:{ 类型

我正在尝试使用Sequelize+nodeJs和现有MySQL数据库创建多对多关系:

以下是我的表格: -“usr”表:usr_id(主键) -中间“usr\U角色”:usr\U id、角色\U id -“角色”表:角色\u id

这是我的模型 “用户”模型:

“严格使用”;
var bcrypt=require('bcryptjs');
module.exports=函数(sequelize,数据类型){
var User=sequelize.define('User'{
乌斯里德:{
类型:DataTypes.INTEGER,
primaryKey:没错,
自动递增:真,
allowNull:错,
字段:'usr\u id'
},
姓名:{
类型:DataTypes.STRING,
allowNull:错,
字段:'usr_name'
},
}, {
时间戳:false,
表名:true,
tableName:'usr',
名称:'User',
加下划线:'正确',
分类方法:{
助理:职能(模型){
belongsToMany(models.Role,{通过:'UserRole',foreignKey:'usr_id',as:'UserRoles'});
}
}
}
);
返回用户;

};
您需要在
目录下的配置中指定实际中间表的名称,或者定义模型
UserRole
。此外,除非中间表中有字段,否则可能还需要指定
时间戳:false
。例如:

Role.belongsToMany(models.User, {
    through: 'usr_role',
    foreignKey:'role_id',
    timestamps: false
});

这将导致sequelize在其生成的查询中使用该表,而不需要定义模型,并将阻止它从用户表或中间表请求时间戳字段。

感谢您的回复。我已尝试使用您的解决方案,但错误“TypeError:无法读取未定义的属性'split'”仍然存在。我使用的是sequelize版本3.23.6。谢谢