Я создал проект «Секреты», и каждый секрет может понравиться или не понравиться пользователям. Проблема в том, что он должен увеличиваться каждый раз, когда пользователь нажимает кнопку «Мне нравится». Почему-то это не работает!
Я предполагаю, что ошибка заключается в логике маршрута, так как я уверен, что все остальное правильно. Если вы, ребята, думаете, что мне нужно объяснить / вставить немного больше кода, пожалуйста, скажите мне.
Я уже пытался сделать это, но ничего не вышло:
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.