我希望在将用户添加到“WOD”表后获取更新的表值。例如,我的WOD表中有2个用户,添加第三个用户后,我想向客户返回一个响应,显示我刚刚插入了数据(第三个人)。但现在,我只能返回前两个用户,因为我无法获取更新后的值。当然,我可以在插入后进行另一个查询以获取更新的表值,但是否有更好的解决方案?以下是我的代码:
const addUser = async (req, res) => {
try {
const { userId, wodId } = req.body;
if (!userId || !wodId) {
res.status(400).send({ status: false, message: 'need userId and wodId' });
}
const wod = await Wod.findByPk(wodId, {
include: [
{
model: User,
as: 'Participants',
through: { attributes: [] }
}
]
});
//check capacity if full.
if (wod.Participants.length >= wod.capacity) {
res
.status(403)
.send({ status: false, message: 'Capacity of this class is full!' });
}
const result = await wod.addParticipants(userId);
res.status(201).json({ status: !!result, wod });
} catch (error) {
res.status(500).send({ status: result, message: error.message });
console.log(error.message);
}
};