sqlite - 将 Sqlite 和 Knex 与 Node 模块一起使用
问题描述
我用电子构建了一个桌面应用程序并用于该 JS 和 jQuery。所有这些都作为模块安装并与 "require" 一起使用。它完美无缺。
现在我希望我的数据库带有 sqlite 和 knex,并尝试使用 knex 和 sqlite db 以及应用程序启动节点服务器。
但问题是,knex 找不到 sqlite 模块。
有人能帮我吗?
HERE is the start
console.log('SQL - Datenbank-Server gestartet');
let express = require('express');
let app = express();
let knex = require('knex');
let server = app.listen(8286, function () {
console.log('DB Server running on port 8286');
});
let connection = knex({
client: 'sqlite3',
connection: {
filename: './finanzverwaltung.db'
}
});
HERE is the Failure
Server gestartet.
SQL - Datenbank-Server gestartet
Knex: run
$ npm install sqlite3 --save
Cannot find module 'F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\binding\node-v70-win32-x64\node_sqlite3.node'
Require stack:
- F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\sqlite3.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\knex.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\knex.js
- F:\Projekte\finanzverwaltung\app\server\sql_server.js
Error: Cannot find module 'F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\binding\node-v70-win32-x64\node_sqlite3.node'
Require stack:
- F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\sqlite3.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\knex.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\knex.js
- F:\Projekte\finanzverwaltung\app\server\sql_server.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:659:15)
at Function.Module._load (internal/modules/cjs/loader.js:577:27)
at Module.require (internal/modules/cjs/loader.js:715:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Object.<anonymous> (F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\sqlite3.js:4:15)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
at Function.Module._load (internal/modules/cjs/loader.js:601:3)
at Module.require (internal/modules/cjs/loader.js:715:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Client_SQLite3._driver (F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js:44:12)
at Client_SQLite3.initializeDriver (F:\Projekte\finanzverwaltung\node_modules\knex\lib\client.js:253:26)
at Client_SQLite3.Client (F:\Projekte\finanzverwaltung\node_modules\knex\lib\client.js:84:10)
at new Client_SQLite3 (F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js:31:19)
F:\Projekte\finanzverwaltung\node_modules\knex\lib\client.js:257
throw new Error(`${message}\n${e.message}`);
^
Error: Knex: run
$ npm install sqlite3 --save
Cannot find module 'F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\binding\node-v70-win32-x64\node_sqlite3.node'
Require stack:
- F:\Projekte\finanzverwaltung\node_modules\sqlite3\lib\sqlite3.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\knex.js
- F:\Projekte\finanzverwaltung\node_modules\knex\lib\index.js
- F:\Projekte\finanzverwaltung\node_modules\knex\knex.js
- F:\Projekte\finanzverwaltung\app\server\sql_server.js
at Client_SQLite3.initializeDriver (F:\Projekte\finanzverwaltung\node_modules\knex\lib\client.js:257:13)
at Client_SQLite3.Client (F:\Projekte\finanzverwaltung\node_modules\knex\lib\client.js:84:10)
at new Client_SQLite3 (F:\Projekte\finanzverwaltung\node_modules\knex\lib\dialects\sqlite3\index.js:31:19)
at Knex (F:\Projekte\finanzverwaltung\node_modules\knex\lib\knex.js:57:42)
at Object.<anonymous> (F:\Projekte\finanzverwaltung\app\server\sql_server.js:12:18)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
at Function.Module._load (internal/modules/cjs/loader.js:601:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:873:10)
at internal/main/run_main_module.js:21:11
解决方案
所以最后我做到了 - 解决方案是使用电子生成器......
"postinstall": "electron-builder install-app-deps"
推荐阅读
- php - 使用 PHP CS Fixer 删除导入之间的多余行
- system-verilog - VCS 工具在 edaplayground 上使用 uvm_hdl_deposit 时出错
- c++ - C++ 中的复杂性分析
- html - 如何修复 flexbox 偏移项目
- ios - SwiftUI 多轮选择器触摸边界偏移和崩溃 iOS 15
- vue.js - 我可以设置 503 页面的样式吗?
- node.js - node js上传图片并上传到ftp:适用于一张但不是两张图片
- angular - 使用特定模块时 ag-grid-enterprise 类型的位置?
- angularjs - 自上一版 chrome (94) 以来的 innerHeight 中的错误
- spring-boot - 已部署的 Spring Boot 应用程序的 spring-boot-logger.log 文件位置