Javascript Sequelize多对多添加功能不起作用
package.json 快递:^4.17.1, 页码:^7.17.1, 页面存储:^2.3.3, 续集:^5.21.3 有两种型号: 有一个用于关联的组: 以及将用户添加到组的方法: 执行过程中出现错误: 未处理的拒绝类型错误:user.addGroup不是函数Javascript Sequelize多对多添加功能不起作用,javascript,node.js,express,sequelize.js,many-to-many,Javascript,Node.js,Express,Sequelize.js,Many To Many,package.json 快递:^4.17.1, 页码:^7.17.1, 页面存储:^2.3.3, 续集:^5.21.3 有两种型号: 有一个用于关联的组: 以及将用户添加到组的方法: 执行过程中出现错误: 未处理的拒绝类型错误:user.addGroup不是函数 它应该会起作用。以下是一个工作示例: 从“../../db”导入{sequelize as seq}; 从“Sequelize”导入Sequelize; const User=seq.define “用户”, { 身份证:{ 类型:S
它应该会起作用。以下是一个工作示例: 从“../../db”导入{sequelize as seq}; 从“Sequelize”导入Sequelize; const User=seq.define “用户”, { 身份证:{ 类型:Sequelize.INTEGER, 自动递增:真, primaryKey:没错, allowNull:错, }, 登录:{ 类型:Sequelize.STRING, allowNull:错, }, 密码:{ 类型:Sequelize.STRING, allowNull:错, }, 年龄:{ 类型:Sequelize.INTEGER, }, 已重新选择:{ 类型:Sequelize.BOOLEAN, }, }, {时间戳:false}, ; 常量组=序号定义 "集团",, { 身份证:{ 类型:Sequelize.INTEGER, 自动递增:真, primaryKey:没错, }, 姓名:{ 类型:Sequelize.STRING, allowNull:错, }, 权限:{ 类型:Sequelize.ARRAYSequelize.STRING, }, }, {时间戳:false}, ; const UserGroup=seq.define'UserGroup',{}; Group.belongToManyUser,{通过:UserGroup}; User.belongToManyGroup,{通过:UserGroup}; 异步功能测试{ 试一试{ wait seq.sync{force:true}; //种子 等待User.bulkCreate [ {登录名:'a',密码:'123',组:[{name:'groupa'},{name:'groupb'}]}, {登录名:'b',密码:'321',组:[{name:'groupc'},{name:'groupd'}]}, ], {包括:[组]}, ; //试验 const userIds=[1,2]; constgroupid=3; const user=await user.findOne{where:{id:userIds}}; const group=await group.findOne{where:{id:groupId}; const result=await user.addGroupgroup; console.logresult; }捕捉错误{ console.logerror; }最后{ 等待序列关闭; } }; 执行结果和生成的SQL: 执行默认值:如果存在用户组级联,则删除表; 执行默认:如果存在组级联,则删除表; 执行默认:如果存在用户级联,则删除表; 执行默认:如果存在用户级联,则删除表; 执行默认值:创建表如果不存在用户id序列,登录VARCHAR255不为空,密码VARCHAR255不为空,年龄整数,isDeselected布尔值,主键id; 执行默认值:选择i.relname作为名称,ix.indprimary作为主要,ix.indunique作为唯一,ix.indkey作为indkey,array_agga.attnum作为列索引,array_agga.attname作为列名称,pg_get_indexdefix.indexrelid作为pg_class t,pg_class i,pg_index ix中的定义,pg_属性a,其中t.oid=ix.indrelid和i.oid=ix.indexrelid和a.attrelid=t.oid和t.relkind='r'和t.relname='user'按i.relname分组,ix.indexrelid,ix.indprimary,ix.indisunique,ix.indkey按i.relname排序; 执行默认:如果存在组级联,则删除表; 执行默认值:创建表如果不存在组id序列,名称VARCHAR255不为空,权限VARCHAR255[],主键id; 执行默认值:选择i.relname作为名称,ix.indprimary作为主要,ix.indunique作为唯一,ix.indkey作为indkey,array_agga.attnum作为列索引,array_agga.attname作为列名称,pg_get_indexdefix.indexrelid作为pg_class t,pg_class i,pg_index ix中的定义,pg_属性a,其中t.oid=ix.indrelid和i.oid=ix.indexrelid和a.attrelid=t.oid和t.relkind='r'和t.relname='group'按i.relname分组,ix.indexrelid,ix.indprimary,ix.indisunique,ix.indkey按i.relname排序; 执行默认值:如果存在用户组级联,则删除表; 执行默认值:创建表如果不存在UserGroup groupId INTEGER引用更新级联上删除级联上的组id,userId INTEGER引用更新级联上删除级联上的用户id,主键groupId,userId; 执行默认值:选择i.relname作为名称,ix.indprimary作为主要,ix.indunique作为唯一,ix.indkey作为indkey,array_agga.attnum作为列索引,array_agga.attname作为列名称,pg_get_indexdefix.indexrelid作为pg_class t,pg_class i,pg_index ix中的定义,pg_属性a,其中t.oid=ix.indrelid和i.oid=ix.indexrelid和a.attrelid=t.oid和t.relkind='r'和t.relname='UserGroup'按i.relname分组,ix.indexrelid,ix.indisprimary,ix.indisunique,ix.indkey按i.relname排序; 执行默认值:插入用户id、登录名、密码值默认值、'a'、'123',默认值、'b'、'321'返回*; 执行默认值:插入组id,名称值默认值,'group a',默认值,'group b',默认值,'group c',默认值,'group d'返回*; 执行默认值:插入用户组groupId,userId值1,1,2,1,3,2,4,2返回*; 执行默认值:选择id、登录名、密码、年龄,从用户中重新选择为用户,其中user.id在1、2限制中
// User
const User = seq.define('user', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false
},
login: {
type: Sequelize.STRING,
allowNull: false
},
password: {
type: Sequelize.STRING,
allowNull: false
},
age: {
type: Sequelize.INTEGER
},
isDeselected: {
type: Sequelize.BOOLEAN
}
}, { timestamps: false });
export default User;
// Group
const Group = seq.define('group', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: Sequelize.STRING,
allowNull: false
},
permissions: {
type: Sequelize.ARRAY
}
}, { timestamps: false });
export default Group;
import Group from './group';
import User from './user';
const UserGroup = seq.define('UserGroup');
Group.belongsToMany(User, { through: UserGroup });
User.belongsToMany(Group, { through: UserGroup });
seq.sync({ force:true }).then(() => { console.log("Tables have been created"); }).catch(err=>console.log(err));
UserModel.findOne({ where: { id: userIds } })
.then((user) => {
if (!user) { return; }
GroupModel.findOne({ where: { id: groupId } })
.then((group) => {
if (!group) return;
user.addGroup(group);
});
"pg": "^7.17.1",
"pg-hstore": "^2.3.3",
"sequelize": "^5.21.3",