首页 > 解决方案 > Sqlite3 导致错误:模块没有自注册

问题描述

我在我的 js 项目中遇到了 sqlite3 的问题。我是 node、npm 和一般编码的新手。

完整的错误信息:

Module did not self-register: './node_modules/sqlite3/lib/binding/node-v72-darwin-x64/node_sqlite3.node'. 
  at ​​​Object.Module._extensions..node​​​ ​internal/modules/cjs/loader.js:1207​
  at ​​​Object.<anonymous>​​​ ​./node_modules/sqlite3/lib/sqlite3.js:4​
  at ​​​Object.Module._extensions..js​​​ ​internal/modules/cjs/loader.js:1177​
  at ​​​Object.Module._extensions..js​​​ ​internal/modules/cjs/loader.js:1177​
  at ​Api/artists.js:4:0

跑步:

节点 12.16.2

npm 6.14.4

sqlite 4.1.1

macOS 10.15.2

我尝试了一些不同版本的node和sqlite3,npm rebuild然后rm -r node_modules按照这里npm install的建议

不知道是什么导致了这个错误。我的猜测是它与不兼容的不同 npm 包的版本有关。

我搜索了谷歌和这里,查找了 npm 文档等,但没有找到我正在寻找的确切内容。NPM 文档暗示它可能与 node-pre-gyb这里有关,阅读后,我不喜欢乱搞。

const sqlite3 = require('sqlite3');  //error caught here//
const db = new sqlite3.Database(
  process.env.TEST_DATABASE || './database.sqlite'
);```

标签: javascriptnode.jssqliteapinode-sqlite3

解决方案


推荐阅读