javascript - 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'
);```
解决方案
推荐阅读
- python-3.x - KEYCODE_BACK 按钮映射使用哪个 HID 键码?
- c - 将数字扫描到C中的函数中
- r - 从嵌套列表中提取具有特定名称的所有元素
- c# - 如何将 C# 加密代码传递给 TypeScript?
- php - 我将如何在我的控制器中跟踪分页值并在每页显示一定数量的记录?
- sql - 如何使用 Laravel 在 SQLITE3 数据库的列中获取前 3 个最常见的数字?
- reactjs - 做出反应。更改选择后状态不会更改
- mysql - 如何使用 mysqldump 备份 mysql?
- php - 将文件上传到特定位置 PHP
- php - 显示菜单类别并列出每个菜单类别下的所有菜单并返回json数据