我目前有一个每个人的数据库,每个人都有一个状态值。我正在尝试更改它们的状态值。
const id = parseInt(req.params.id , 10);
const { valid, messageObj } = validateId(id);
if (!valid) {
res.status(400).send(messageObj);
}
let { status, priority } = req.body;
let people = db.prepare('select * from people').all();
const person = people.find(person => person.id === id);
if(status !== 'none' & status == 'ready' || status == 'done'){
let updates = db.query(
'UPDATE people SET ? WHERE ?',
[{ status: status }, { id: id }]
);
}
我一直收到db.query is not a function
的错误,但我尝试的每个函数都会得到这个错误。
对SQL非常陌生,但我只是想弄清楚这一点或任何对我有帮助的文档--在官方文档中,SQlite3没有任何update
函数。
2条答案
按热度按时间chy5wohz1#
我在better-sqlite3 API for the
Database
class中找不到名为query()
的函数。我认为你需要prepare()
一个Statement
对象,然后run()
。此外,列名不能作为绑定参数传递。您的查询应该如下所示:
您需要更改以下内容:
致:
0s0u357o2#
根据templates,您可以使用Java脚本语法将变量替换为它的值。