electron安裝操作sqlite3數據庫(完整版)


仔細閱讀我說的每一個字,要不然你可能會安裝不成功。

以下是我解決安裝sqlite3數據庫的所有操作步驟,前提是,我的電腦已經裝有Python3.5和vs2018了。我不知道安裝這個sqlite會不會和這個有關,在我查找解決問題的時候,很多博客都提醒要安裝,我也不知道要不要安裝,如果你一下步驟你沒有安裝成功,那就可以參考安裝一下Python和vs。

 

1、在操作sqlite3數據庫之前你要有一個能運行的electron  Demo。如果沒有請參考我的這篇文章。

2、在項目的根目錄下運行(cmd最好都是用管理員命令打開的

npm install sqlite3 --save

目錄結構如下:

 

2、安裝以后,發現Electron不能正常使用,會報出很多錯誤,比如缺少sqlite3模塊,找不到,但是明明裝了,這里需要對Sqlite3單獨編譯。

原因是:通過npm安裝的sqlite3模塊只實現了對node.js原生環境的支持,如果electron需要使用的話必須對其進行二次編輯。
首先進入到安裝好的模塊sqlite3目錄下

cd .\node_modules\sqlite3

運行一下命令:

1 //先運行第一步
2 npm install nan --save
3 //成功在運行這一步
4 npm run prepublish

如果run失敗(就是運行npm run prepublish)可以跳過

3、接下來再執行

node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-win32-x64
node-gyp rebuild --target=1.4.13 --arch=x64 --target_platform=win32 --dist-url=https:
//atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-win32-x64

 

操作注意 一定得看:

第三步標紅的代碼一定要注意,這個path后面的路徑一定要和你調試器內報錯的信息一樣,我之前安裝失敗報的錯,這個錯(第2步)是我在網上找的別人的一個,作為參考。但是錯誤類型都是一樣的,只是后面划紅線的地方不一樣,你在path后面那個路徑改成你自己報錯顯示的路徑即可。

另外 以上命令行是編譯的關鍵,–target代表electron的版本號,不是package.json的electron版本號,訪問https://npm.taobao.org/mirrors/atom-shell,查看最新的版本並將其設為target即可;–arch是cpu的位數;–dist-url指定了electron header的下載來源,像之前說的一樣,如果你的外網訪問速度很快,使用【https://atom.io/download/electron/】也可以。另外注意,path一定要一致。

4、如果你在執行第三步的時候報:

node-gyp不是內部命令,那就是說明,你沒有安裝node-gyp

4.1安裝node-gyp
npm install -g node-gyp

   4.2 然后必須以管理員身份運行powershell或者cmd否則以下指令會報錯(我上面說了 你最好每一個cmd都是用管理員的身份打開,以免產生不必要的麻煩)

npm install --global --production windows-build-tools

   4.3安裝成功后再去執行第3步。

 

5、完畢后再運行【npm run dev】,測試sql語句,這樣應該就沒問題了。

二、操作sqlite數據庫;

在項目中隨便創建一個js文件(sqlite3Db.js),里面代碼如下:

 1 // src/renderer/utils/db.js
 2 // 建表腳本,導出db對象供之后使用
 3 import path from 'path';
 4 import sq3 from 'sqlite3';
 5 // import { docDir } from './settings';
 6 // 將數據存至系統用戶目錄,防止用戶誤刪程序
 7 export const dbPath = path.join("F:\\vsCode_Homework\\test01", 'data.sqlite1');
 8 
 9 const sqlite3 = sq3.verbose();
10 const db = new sqlite3.Database(dbPath);
11 db.serialize(() => {
12   
13  db.run("create table test(name varchar(15))",function(){
14   db.run("insert into test values('hello,word')",function(){
15     db.all("select * from test",function(err,res){
16       if(!err){
17         console.log(JSON.stringify(res));
18       }
19       else{
20         console.log(err);
21       }
22     });
23   });
24 });
25 
26    
27 });
28 
29 export default db;

然后在渲染進程中引用js

import sqlite3Db from '@/components/js/sqlite3Db'

運行electron,在調試器查看console輸出

npm run dev

完工。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM