我的完整代码位于https://github.com/jep-dev/warn但要点如下。我正在尝试创建一个机器人,将 :warning:/⚠️ 的一个或多个反应转换为单个主持人通知。(用户对 ⚠️ 的第一反应应该通知版主,但进一步 ⚠️ 不应该向他们发送垃圾邮件。)
我收到此错误:
/home/john/dev/warn/node_modules/sqlite/build/Database.js:37
throw new Error('sqlite: filename cannot be null / undefined');
^
Error: sqlite: filename cannot be null / undefined
at /home/john/dev/warn/node_modules/sqlite/build/Database.js:37:23
at new Promise (<anonymous>)
at Database.open (/home/john/dev/warn/node_modules/sqlite/build/Database.js:33:16)
at Object.open (/home/john/dev/warn/node_modules/sqlite/build/index.js:14:14)
at Database.load (/home/john/dev/warn/database.js:6:18)
at start (/home/john/dev/warn/warn.js:77:11)
at Object.<anonymous> (/home/john/dev/warn/warn.js:83:1)
at Module._compile (node:internal/modules/cjs/loader:1233:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
at Module.load (node:internal/modules/cjs/loader:1091:32)
Node.js v20.5.1
但有问题的代码是从文件名加载的。
await this.sql.open("database/scores.sqlite");
该文件是空的,但它存在。这是问题所在还是我说错了?如果您需要在此处查看更多代码,请告诉我。
编辑:
5 load: async function (fname) {
6 await this.sql.open(fname);
7 await this.sql.migrate();
...
19 }
打电话给
77 await db.load("database/scores.sqlite");
sqlite
open
不接受文件名作为参数。它接受一个具有filename
元素的对象。 https://www.npmjs.com/package/sqlite你需要: