【问题标题】:Confused about how to structure an Electron app对如何构建 Electron 应用程序感到困惑
【发布时间】:2020-07-10 13:20:16
【问题描述】:

我刚开始使用 Electron,对如何构建项目有点困惑。

对于基本网页,您显然会使用包含指向您的 JS 和 CSS 链接的 HTML 页面

使用 MERN 应用程序,您可以将前端与路由分开,然后使用“require”函数将后端与路由分开。

我构建了一个简单的练习应用程序,用于创建待办事项列表。目前它有以下文件:

package.json main.js mainWindow.html addWindow.html

现在我已经开始向数据库添加连接,但我不知道该放在哪里。此刻,当从addWindow.html添加一个项目,IPC Renderer将参数发送到main.js,我在函数中添加代码也调用数据库插入函数:

ipcMain.on('item:add', function(e, inputItems){
    console.log("shop item" + inputItems)
    dbInsert(inputItems)
    mainWindow.webContents.send('item:add', inputItems)
})

然后我的 dbInsert() 函数也在 main.js 中

function dbInsert(inputItem){
    let db = new sqlite3.Database('sldb.db', (err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('Connected to the sqlite database.');
      });
    db.run(`INSERT INTO items (itemName, itemCat) VALUES(?, ?)`, inputItem.shopItem,     inputItem.shopItemCat), function(err) {
        if (err) {
          return console.log(err.message);
        }
      };
}

尽管我的 main.js 最终会变得一团糟。在 Electron 中构造事物的正确方法是什么?我应该如何分离这些不同的功能,我应该如何将它们连接在一起?我是在 main.js 文件中简单地“包含”JS 文件还是有“要求”的处理方式?

【问题讨论】:

  • 什么错误信息?
  • 只是理解错了,对不起
  • 您可以使用require 连接它们

标签: javascript electron


【解决方案1】:

请查看secure-electron-template,我注意到您指的是 IPC 消息,此模板已内置以及许多 cmets 和良好的文档。

对于您保存到数据库的问题,我建议创建一个单独的模块来处理此问题,并像我在这一行中所做的那样在您的 main.js 文件中简单地设置绑定:https://github.com/reZach/secure-electron-template/blob/master/app/electron/main.js#L60

这个话题很大很详细,但我想你也可以通过查看这个文件来找到灵感:https://github.com/reZach/i18next-electron-fs-backend/blob/master/src/index.js

【讨论】:

    猜你喜欢
    • 2011-09-02
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2015-02-03
    • 2012-06-11
    相关资源
    最近更新 更多