0

考虑使用以下步骤创建的示例

git clone --depth=1 https://github.com/electron-react-boilerplate/electron-react-boilerplate.git better-sqlite3-test
cd better-sqlite3-test
yarn
cd ./release/app
yarn add better-sqlite3
cd ../..
yarn add -D @types/better-sqlite3

现在,只要我开始像这样使用 database.js :

class B3SqliteDB {
  constructor() {
    let db = null;
  }

  startDB = () => {
    const Database = require('better-sqlite3');
    this.db = new Database('upStore.db', { verbose: console.log });

    const createTable =
      "CREATE TABLE IF NOT EXISTS newTable ('id'  VARCHAR(10) NOT NULL, 'name'  VARCHAR(50) NOT NULL);";

    this.db.exec(createTable);
  };
}
export default new B3SqliteDB;

我收到错误消息:

Uncaught TypeError: Database is not a constructor
    at B3SqliteDB.startDB (renderer.dev.js:65346)
    at renderer.dev.js:65285

有人可以帮助解决这个问题!泰亚

4

1 回答 1

0

这对我有用

  • 将电子降级到 13.6
  • 在根目录下安装 better-sqlite3
  • 重建包
  • 测试

yarn remove electron
yarn add electron@13.6.1
yarn add better-sqlite3; 
cd node_modules/better-sqlite3; 
../.bin/electron-rebuild
cd ../..
npm run start

在此处输入图像描述

笔记

  • 您可以尝试其他支持集成 ReactJS | 的桌面选项(Electron Alternatives)VueJS就好了
  1. 哀号(Golang) https://github.com/wailsapp/wails
  2. Lorka (Golang) https://github.com/zserge/lorca
  3. Tauri (Rust) https://github.com/tauri-apps/tauri
  4. Flutter 桌面 (Dart) https://flutter.dev/desktop
  • 我喜欢的是该应用程序的大小仅比示例 Hello World Electron 应用程序小 10 到 20 倍。
于 2021-11-14T05:25:19.717 回答