所以我有这样的代码,但有时候这个.changes = 0,有时候这个.changes = 1。我不知道为什么在我的代码中,有db.run更新sqlite3数据库。有时this.changes为1,但有时this.changes为0。有人能帮我这个吗?变化总是1。
app.post("/like/:noteId", (req, res) => {
//TODO first the shuf we will be false
shuf = false;
const noteId = parseInt(req.params.noteId.trim());
//TODO next we will be search the position of noteId
let itemIndex = -1;
for (let i = 0; i < data.length; i++) {
if (data[i].noteId == noteId) {
itemIndex = i;
break;
}
}
if (itemIndex !== -1) {
const item = data.splice(itemIndex, 1)[0];
data.unshift(item);
if (!item.hasLiked) {
//TODO like usualy,the script will run the database first
db.run("UPDATE data SET Like = Like + 1 WHERE noteId = ?", [noteId], function(err) {
item.like++
if (err) {
return console.log(err.message);
}
console.log(`Row(s) updated: ${this.changes}`);
item.hasLiked = true;
res.cookie(`liked_${noteId}`, "true");
res.redirect("/");
});
}
}
});```
1条答案
按热度按时间ctehm74n1#
如果
UPDATE
语句中的WHERE
子句不匹配表中的任何行,则它不更改任何行,因此在.changes
中返回0。