Sunday 21 April 2019

Sequelize, how to do I create a new Record with two foreign keys?

I need to save a message with two user ids (sender and receiver). So I have a Message model and a User model. With the associations, User hasMany Messages and Message belongs to User & Message belongs to UserSo in the router or controller or whatever, I want to be able to...chat.router models.Message.create({ message: req.body.message; senderUserId: req.body.senderId, recieverUserId: req.body.recieverId, }).then( () => { ... blah ... }); or it might be better to do something like models.Message.create({ message: req.body.message; include[ models.User.findUserById(senderid) as 'sender' , models.User.findUserById(senderid) as 'receiver' , ]; }) Im not sure that I'm using the foreign key correctly, (I've never had to use one so far).So my User.Model schema looks like this, 'use strict'; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { email: DataTypes.STRING, password: DataTypes.STRING, firstName: DataTypes.STRING, lastName: DataTypes.STRING, }, { createdAt: false, updatedAt: false }); .... User.hasMany(models.Message); }; return User; }; and my Message.Model schema looks like this, 'use strict'; module.exports = (sequelize, DataTypes) => { const Message = sequelize.define('Message', { message: DataTypes.STRING }, { createdAt: 'dateSent', updatedAt: false }); Message.associate = (models) => { Message.belongsTo(models.User,{ foreignKey:{ name:'senderUserId', allowNull: false, } }); Message.belongsTo(models.User,{ foreignKey:{ name:'recieverUserId', allowNull: false, } }); }; return Message; };

Submitted April 22, 2019 at 04:37AM by horrofan

No comments:

Post a Comment