我正在使用node.js
构建一个应用程序,使用sqlite3
模块访问数据存储.我一直有的问题是当我 run 的时候
node myapp.mjs
和foo()
被调用(在log.mjs
模块中),则foo()
中的db.run(...)
语句不会执行,尽管控制台会输出:
Logged foo!
除了数据库中没有更改这一事实外,没有任何错误,也没有任何语句已失败或成功的指示.这一整行也可以被注释掉.
添加行
foo();
如果我直接运行该文件,则可以将其设置为log.mjs
:
node log.mjs
是否导出foo
.我是不是搞不懂ES6模块的某些导入/导出行为,还是sqlite3
模块或其他什么东西有问题?
档次:myapp.mjs
;起点.
import { foo } from "./bin/commands/log.mjs";
foo();
process.exit(0);
档案:log.mjs
;魔力没有发生的地方.
import { sqlite3 } from "sqlite3";
sqlite3.verbose();
export function foo() {
let db = new sqlite3.Database("./bin/db/test.db");
db.run("insert into casefile (forum, fileno) values (1, 'LOG0000');");
console.log("Logged foo!");
}