gpt4 book ai didi

node.js - NodeJS 和 SQLite3 在插入之前检查行是否存在

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:27 27 4
gpt4 key购买 nike

var db = new sqlite3.Database("items.db");
db.serialize(function()
{
var stmt = " SELECT * FROM items;";
db.get(stmt, function(err, row){
if(err) throw err;
if(typeof row == "undefined") {
db.prepare("INSERT INTO items (ID) VALUES(?)").run("item1").finalize();
} else {
console.log("row is: ", row);
}
});
});

上面的代码片段产生以下错误:

events.js:72
throw er; // Unhandled 'error' event
^
Error: SQLITE_MISUSE: Database handle is closed

我不确定我做错了什么,这是最好的方法吗?

我也尝试过使用:

var stmt = " SELECT EXISTS(SELECT * FROM monitor LIMIT 1)";

检查条目是否存在。

谢谢,

D

最佳答案

我终于明白问题出在哪里了。我有一个 db.close();在我没有注意的文件末尾调用。我还没有习惯在 Node.js 中异步运行的东西。

events.js 文件似乎位于 node-sqlite 包中。

感谢所有试图提供帮助的人。

D

关于node.js - NodeJS 和 SQLite3 在插入之前检查行是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com