You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js SQLite get语句无返回,回调函数未执行求助

解决Node.js SQLite db.get() 回调未触发的问题

嘿,一眼就瞅出你代码里的关键问题了——语法错误把回调函数给排除在db.get()的参数范围之外了!

你现在的代码片段:

db.get("SELECT Username FROM Authentication"), function(err,row) { console.log('test') }

看到那个多余的右括号没?你提前把db.get()的调用给闭合了,后面的回调函数变成了一个孤零零的独立匿名函数,根本没被绑定到db.get()上,自然不会被触发执行。

正确的写法应该把回调函数作为db.get()的第二个参数,放在方法的括号内部:

var sqlite3 = require('sqlite3').verbose(); 
var db = new sqlite3.Database('./books.db'); 

function authenticate(){ 
  db.get("SELECT Username FROM Authentication", function(err, row) { 
    console.log('test');
    // 这里可以正常处理查询结果和错误了
    if (err) {
      console.error(err.message);
      return;
    }
    console.log('查询结果:', row);
  });
}

// 别忘了调用函数哦!
authenticate();

另外补充两个小提醒:

  • 确认你的books.db数据库文件存在,且里面确实有Authentication表,不然就算语法修正后,也可能因为找不到数据库/表出现错误(不过你当前的核心问题是回调没触发,先搞定语法再说)
  • 一定要调用authenticate()函数,只定义不执行的话,db.get()也不会启动查询的

内容的提问来源于stack exchange,提问作者Micha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:42:47