我创建了一个“秘密”项目,用户可以喜欢/不喜欢每个秘密。问题在于,每次用户触发“赞”按钮时,它都应该递增。由于某些原因,它不起作用!。
我以为错误是路线背后的逻辑,因为我确定其他一切都正确。如果你们认为我需要解释/粘贴更多代码,请告诉我。
我也已经尝试过这样做,但是也没有用:
router.put('/like/:id', async (req, res) => {
try {
const secret = await Secret.findById(req.params.id);
const maxLikes = 999999999;
for (secret.likes = 0; secret.likes < maxLikes; secret.likes++) {
await secret.save();
res.json(secret.likes);
}
} catch (err) {
console.error(err.message);
res.status(500).send('Server error');
}
});
这是我当前的代码(已更新)
// @route PUT api/secrets/like/:id
// @description Like a secret
// @access Public
router.put('/like/:id', async (req, res) => {
try {
const secret = await Secret.findById(req.params.id);
// while (secret.likes <= 0) {
// secret.likes++;
// }
secret.likes.push(1);
await secret.save();
res.json(secret.likes);
} catch (err) {
console.error(err.message);
res.status(500).send('Server error');
}
});
当前的行为是它只允许一个赞,一旦达到1,就不再增加。希望我能很好地解释自己,谢谢。
注意:我也在使用ExpressJS。