gpt4 book ai didi

mysql - Sequelize Node.js 新功能在创建多对多关系后不起作用

转载 作者:行者123 更新时间:2023-11-28 23:32:31 27 4
gpt4 key购买 nike

所以我有两个模型,User 和 Chat。每个用户可以有多个聊天,每个聊天可以有多个用户。所以我创建了一个名为 UserChat 的新模型 -

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;

然后是我的用户模型(简化)-

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;

现在,如果我尝试使用 addUser 函数或任何新函数,我应该根据 documentation我收到该函数仍然不存在的错误。

最佳答案

所以我的问题是我试图在实际模型上调用方法,但这些方法被添加到模型的实例中。因此,您需要在使用 addChat 或 addUser 之前找到聊天/用户。

关于mysql - Sequelize Node.js 新功能在创建多对多关系后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36944133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com