Не знаете, как структурировать приложение Electron - PullRequest
0 голосов
/ 09 июля 2020

Я только начинаю с Electron и немного запутался в том, как структурировать проект.

С базовыми c веб-страницами вы бы просто использовали HTML страницы, содержащие ссылки на ваши JS и CSS

С приложениями MERN у вас будет ваш внешний интерфейс, отделенный от ваших маршрутов, а затем ваш бэкэнд отдельно от него, используя функцию 'require', чтобы собрать все вместе.

Я создал простое приложение для практики, которое создает список дел. На данный момент в нем есть следующие файлы:

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

Теперь я начал добавлять подключения к базу данных я не уверен, куда ее положить. На данный момент, когда элемент добавляется из addWindow. html, и IP C 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? Как мне разделить эти разные функции и как связать их вместе? Могу ли я просто «включить» JS файлы в файл main. js или есть ли способ «требовать» для выполнения действий?

1 Ответ

0 голосов
/ 10 июля 2020

Пожалуйста, проверьте secure-electron-template, я заметил, что вы имеете в виду обмен сообщениями IP C, этот шаблон встроен, а также много комментариев и хорошая документация.

Что я рекомендую к вашему вопросу о сохранении в базе данных, создает отдельный модуль для обработки этого и просто настраивает привязки в вашем файле main. js, как я в этой строке: https://github.com/reZach/secure-electron-template/blob/master/app/electron/main.js#L60.

Topi c довольно большой и подробный, но я думаю, вы можете найти вдохновение, посмотрев и этот файл: https://github.com/reZach/i18next-electron-fs-backend/blob/master/src/index.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...