在 electron+vite+vue3+express 项目中使用better-sqlite3
在Electron + Vite + Vue 3 + Express项目中使用better-sqlite3
,首先确保你已经安装了better-sqlite3
和@types/better-sqlite3
。
npm install better-sqlite3 @types/better-sqlite3 --save
在Electron的主进程中,你可以按照以下方式使用better-sqlite3
:
// main.js
const { app, BrowserWindow } = require('electron');
const Database = require('better-sqlite3');
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
mainWindow.loadFile('index.html');
}
app.whenReady().then(createWindow);
// 使用 Database
const db = new Database('path/to/database.db');
在Vue组件中,你可以通过Electron的ipcRenderer
与主进程通讯来操作数据库:
// VueComponent.vue
<template>
<div>
<button @click="getData">Get Data</button>
</div>
</template>
<script>
const { ipcRenderer } = require('electron');
export default {
name: 'VueComponent',
methods: {
getData() {
ipcRenderer.send('db-get-data');
ipcRenderer.on('db-get-data-response', (event, data) => {
console.log(data);
});
},
},
};
</script>
在Electron的主进程中,你需要设置一个IPC监听器来处理数据库操作:
// main.js
const { app, BrowserWindow, ipcMain } = require('electron');
const Database = require('better-sqlite3');
const db = new Database('path/to/database.db');
ipcMain.on('db-get-data', (event) => {
const data = db.prepare('SELECT * FROM tableName').all();
event.reply('db-get-data-response', data);
});
确保你的数据库文件路径是正确的,并且在实际的生产环境中处理好数据库文件的访问权限和跨平台的路径问题。这只是一个简单的例子,实际应用中可能需要更多的错误处理和数据库操作的封装。
评论已关闭