Javascript 电子数据库处理

Javascript 电子数据库处理,javascript,reactjs,electron,Javascript,Reactjs,Electron,我正在尝试用Electron编写一个需要数据库的小应用程序。目前我正在测试PockDB,但这并不重要。 为了提高代码质量,我创建了一个类来处理常见的数据库请求——这应该是访问数据库的唯一方法 不确定,如果我正确理解了主进程/渲染器进程的概念,但是我认为主进程应该考虑数据库访问。这就是我目前的配置: main.js import Database from './database' export const myDB = new Database() database.js(显然只是一个存根)

我正在尝试用Electron编写一个需要数据库的小应用程序。目前我正在测试PockDB,但这并不重要。
为了提高代码质量,我创建了一个类来处理常见的数据库请求——这应该是访问数据库的唯一方法

不确定,如果我正确理解了主进程/渲染器进程的概念,但是我认为主进程应该考虑数据库访问。这就是我目前的配置:

main.js

import Database from './database'
export const myDB = new Database()
database.js(显然只是一个存根)

Root.js(ui组件之一[使用react])

const remote=require('electron')。远程
const main=remote.require('./main.js')
...
main.myDB.hello()}>Test

我的问题:这是一个可行的代码结构解决方案,还是我完全搞错了?我的JS体验只是使用了一些jQuery效果,节点体验完全缺失。这只是一个小爱好项目,所以我只想开始编码;)

它位于右端,与数据库相关的代码应该在主进程中执行

main.js将是主进程,但它似乎缺少创建浏览器窗口(进而创建渲染器进程)的代码。看看Electron的例子,神奇发生在createWindow()

Root.js在渲染器进程中执行,它只能通过“远程”或“IPC渲染器”与主进程通信,后者更安全。可以找到有关远程控制的更多信息。在代码结构方面,您的做法是正确的

主进程负责创建和管理BrowserWindow实例和各种应用程序事件。它还可以注册全局快捷方式、创建本机菜单和对话框、响应自动更新事件等。应用程序的入口点将指向一个JavaScript文件,该文件将在主进程中执行。Electron API的一个子集(见下图)在主进程以及所有node.js模块中都可用。docs声明:“基本规则是:如果模块与GUI或低级系统相关,那么它应该只在主流程中可用。”

^引自某处

export default class Database {
  hello = () => {
    console.log("Hello World")
  }
}
const remote = require('electron').remote
const main = remote.require('./main.js')
...
<button onClick={() => main.myDB.hello()}>Test</button>