Mysql Sequelize Node.js创建多对多关系后新函数不起作用
所以我有两种模式,用户模式和聊天模式。每个用户可以有多个聊天室,每个聊天室可以有多个用户。所以我创建了一个新的模型叫UserChat-Mysql Sequelize Node.js创建多对多关系后新函数不起作用,mysql,node.js,model,sequelize.js,Mysql,Node.js,Model,Sequelize.js,所以我有两种模式,用户模式和聊天模式。每个用户可以有多个聊天室,每个聊天室可以有多个用户。所以我创建了一个新的模型叫UserChat- var db = require('../db'); var Chat = require('../models/chats'); var User = require('../models/users'); var UserChat = db.connection.define("user_chat", { id: { type:
var db = require('../db');
var Chat = require('../models/chats');
var User = require('../models/users');
var UserChat = db.connection.define("user_chat", {
id: {
type: db.Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
}
})
Chat.ChatModel.belongsToMany(User.UserModel, {through: {model: 'user_chat'}});
User.UserModel.belongsToMany(Chat.ChatModel, {through: {model: 'user_chat'}});
这在我的数据库中创建了一个名为user_chats的表,根据sequelize的文档,我应该能够在我的聊天模型上使用addUser,在我的用户模型上使用addChat
但是当我尝试使用Chat.ChatModel.addUser(user)时,我得到错误“addUser不是函数”
这是我如何声明聊天模型和用户模型的-
var db = require('../db')
var Chat = db.connection.define("chat", {
chatname: {
type: db.Sequelize.STRING,
unique: true,
allowNull: false
},
creator:{
type: db.Sequelize.INTEGER,
unique: false,
allowNull: false
}
});
module.exports.ChatModel = Chat;
然后是我的用户模型(简化)——
现在,如果我尝试使用addUser函数或任何新函数,我应该根据我得到的错误,该函数仍然不存在 所以我的问题是我试图在实际模型上调用方法,但是这些方法被添加到模型的实例中。因此,在使用addChat或addUser之前,您需要找到聊天室/用户
var db = require('../db')
var User = db.connection.define("user", {
username: {
type: db.Sequelize.STRING,
unique: true,
allowNull: false
},
password: {
type: db.Sequelize.STRING,
unique: false,
allowNull: false
},
});
module.exports.UserModel = User;