gpt4 book ai didi

sequelize.js - Sequelize : Why am i getting Unhandled rejection SequelizeDatabaseError: column Receiver. 接收器不存在

转载 作者:行者123 更新时间:2023-12-03 22:39:47 26 4
gpt4 key购买 nike

Sequelize 似乎在寻找 Receiver.receiver,它应该是 Receiver.id。我有一个 Message 实体,它由两个名为 User 的字段组成,即接收者和发送者。

我尝试使用 Sequelize 像这样检索它

   Message.hasOne(User,{foreignKey: 'receiver', as: 'Receiver'});

Message.hasOne(User,{foreignKey: 'sender',as: 'Sender'});

User.belongsTo(Message);

Message.findOne({ where : {id:1},

include: [{

model: User,

as: 'Receiver'

},

{

model: User,

as: 'Sender'

}

]

}).then(function (message) {



});

可能是什么问题?

我添加了使用 findOne 方法的代码片段,并将 hasOne 更改为 BelongstoOne。在我的代码中,我收到一个带有消息数据的套接字调用,然后将其存储在数据库中,然后在 promise 中检索消息并将其发送到作为接收方的套接字。 (注意:每条消息由两个用户组成,他们要么是发送者,要么是接收者,并且在同一发送者和接收者之间可以有很多消息)。
socket.on('send message', (data) => {

//todo connect to the gambeat db and update the users info to online

Message.create({

time: moment.utc().format(),

isread: false,

message: data.message,

messagestatus: 'DELIVERED',

receiver: data.receiver.id,

sender: data.sender.id,

}).then(function(message) {

Message.belongsTo(User,{foreignKey: 'receiver', as: 'Receiver'});

Message.belongsTo(User,{foreignKey: 'sender',as: 'Sender'});

Message.findOne({ where :

{id: message.id},

include: [{
model :User,
as: 'Receiver'},

{
model :User,
as: 'Sender'
}
]



}).then(function (message) {


var soc = users_socket.find(soc => Number(soc.uniqueId) === Number(data.receiver.id));

soc.emit('disperse message', message);


});




}).catch(function(err) {

console.log(err, err);

});



});

最佳答案

更改:

Message.hasOne(User,{foreignKey: 'receiver', as: 'Receiver'});
Message.hasOne(User,{foreignKey: 'sender',as: 'Sender'});

收件人:
Message.belongsTo(User,{foreignKey: 'receiver', as: 'Receiver'});
Message.belongsTo(User,{foreignKey: 'sender',as: 'Sender'});

Reason :

HasOne and BelongsTo insert the association key in different models from each other. HasOne inserts the association key in target model whereas BelongsTo inserts the association key in the source model.

关于sequelize.js - Sequelize : Why am i getting Unhandled rejection SequelizeDatabaseError: column Receiver. 接收器不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841852/

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