To learn a little bit how a back end application works i'm currently creating a small instagram-like app using nodejs and sequelize (reactjs for the front).
I have 3 SQL tables :
Users id (pk) username email password
Posts id (pk) userId (fk) message mediaUrl
Following id (pk) userId (fk) followingId (fk)
I would like to know what is the cleanest way to retrieve posts from an array of followingId corresponding to a userId ?
I just found a way to achieve what i wanted :
const db = require("../models");
const User = db.users;
const Post = db.posts;
const Following = db.followers;
const Op = db.Sequelize.Op;
exports.requestPost = async (req, res) => {
const followers = await Following.findAll({
where: {
userId: req.body.userId
},
attributes: [
['followingId', 'followingId']
]
});
const result = await followers.map(x => x.followingId);
const posts = await Post.findAll({
where: {
userId: result
}
});
return res.send(posts)
}