Я пытаюсь создать приложение Electron с помощью React, которое сможет вставлять и извлекать данные из локальной базы данных sqlite3. Я попытался настроить Web Worker для обработки взаимодействий с базой данных, но всякий раз, когда я создаю новое соединение с базой данных, окно инструментов разработчика отключается, и в приложении ничего не происходит. Я думаю, что где-то происходит какая-то ошибка, которую я не могу увидеть или уловить.
Должен ли я использовать Web Worker или аналогичный инструмент потоковой передачи / обработки? Если мне нужно использовать Web Worker, что может вызвать эту проблему?
Я попытался включить пакет sqlite3 в один из моих компонентов React (без Web Worker), но это вызывает всевозможные ошибки.





Закончил отказ от веб-воркеров, поскольку они, по всей видимости, вообще не работают. Переключился на выполнение вставок и запросов в основном процессе и отправку результатов обратно в процесс рендеринга с использованием сборки Electron в IPC.
Вполне возможно получить доступ / использовать sqlite из процесса рендеринга.
У нас есть огромное сложное приложение, которое обменивается данными с десятками аппаратных USB-устройств через собственные драйверы, и все работает в едином процессе рендеринга. Для этого мы просто гарантируем, что никакой код не выполняет синхронные вызовы.
Я сам не использовал sqlite, но node-sqlite3 говорит, что он полностью асинхронный, поэтому вы можете использовать его из модуля рендеринга Electron, не блокируя пользовательский интерфейс.
Просто имейте в виду, что блокировка в основном процессе также может привести к зависанию рендереров. Рендереры связываются с процессом графического процессора через основной процесс, поэтому, если вы заблокируете основной процесс на 500 мс, вы заметите проблемы и в рендерерах ...