使用 node.js 检查数据是不是包含在 SQLite3 数据库中

Posted

技术标签:

【中文标题】使用 node.js 检查数据是不是包含在 SQLite3 数据库中【英文标题】:Check if data is included in SQLite3 database with node.js使用 node.js 检查数据是否包含在 SQLite3 数据库中 【发布时间】:2018-07-06 02:32:33 【问题描述】:

所以我想用 node.js 检查我的数据库中是否有某种文本数据

if(db.run("message.author.username IN (participations|name)")) 
    db.run("INSERT INTO participations(name, info) VALUES (?, ?)", [message.author.username, message.content]);
    message.author.send("Teilnahme bestätigt!");
 else 
    message.author.send("Du nimmst schon teil!");
;

if().. 部分不起作用,没有if() 的其他所有部分也起作用。 有没有办法正确使用它?

【问题讨论】:

【参考方案1】:

数据库调用一般都是promise...意思是你需要提供一个回调函数,然后在那里查看结果:

db.run("message.author.username IN (participations|name)", (err, rows) => 
    if(rows.length > 0) 
      console.log("we have data!");
      db.run("INSERT INTO participations(name, info) VALUES (?, ?)", [message.author.username, message.content]);
     else 
      console.log("no data!");
    
);

此外,您的“选择”似乎不是真正有效的 SQL,除非我不知道 SQLite3 框架有什么魔力。通常,判断行是否存在的 SQL 格式为:

SELECT * FROM <table.name> WHERE username IN (<your values>)

【讨论】:

以上是关于使用 node.js 检查数据是不是包含在 SQLite3 数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:使用“fs”迭代目录时检查文件是不是为符号链接

Node.js:如何在不上传文件列表的情况下检查文件夹是不是为空

如何检查用户是不是在 Firebase 和 Express/Node.js 中经过身份验证?

Node.js:在写入之前检查文件是不是存在[重复]

使用 Node.js 选择哪个数据库(NoSQL 或常规 SQL)最好? [关闭]

检查 zip 或 gzip 是不是经过密码加密(Node.JS)