Я пытаюсь увеличивать текущее значение дохода пользователя каждый раз, когда он / она комментирует блог. Я пишу криптографическую программу с Node и Express для Backend и MongoDB для базы данных. Я хочу иметь возможность увеличивать сумму (текущую) заработанных пользователями за комментарии, которые они делают на платформе.
Я попытался добавить поле "заработок" в модель пользователя и установить для него значение Number, потому что это то, что мне действительно нужно. Затем я написал несколько строк кода, чтобы увеличить текущее количество пользователей после комментирования в любом месте приложения (блога), но это, похоже, не работает. Вместо этого он возвращает тот же номер, который равен 20. Я установил его, чтобы добавить 20 за комментарий, но он всегда возвращает 20, а не 20, 40, 60 ... Мой код ниже
// my model
var userSchema = new mongoose.Schema({
username: String,
firstName: String,
lastName: String,
earnings: 0,
email: String,
password: String
})
// my routes
router.post('/', middleware.isLoggedIn, (req, res) => {
// find blog using ID
Blog.findById(req.params.id, (err, blog) => {
if(err) {
console.log('Error:', err);
res.redirect('/blogs');
} else {
Comment.create(req.body.comment, (err, comment) => {
if(err) {
req.flash('error', 'Something went wrong');
console.log('Error:', err);
} else {
// add id
comment.author.id = req.user._id;
comment.author.username = req.user.username;
var total = Number(req.user.earnings);
// save comment
comment.save();
User.earnings = total;
User.earnings += 20;
blog.comments.push(comment);
blog.save();
res.redirect('/blogs/' + blog._id);
console.log(req.user.earnings);
console.log(User.earnings);
}
})
}
});
});
Я ожидаю, что значение дохода будет увеличиваться и будет сохраняться за комментарий для конкретного пользователя