我正在使用NeDB在我的电子应用程序与React.js,以存储一些任务和项目持久。我正在一个名为DataStores的文件中初始化两个Database.js。
this.taskCollection = new Datastore({
filename:'./tasks.json',
autoload: true,
timestampData: true,
});
this.projectCollection = new Datastore({
filename:'./projects.json',
autoload: true,
timestampData: true,
});然后,我正在导入我的React中的文件。这发生在电子的渲染过程中。我使用文件名属性强制NeDB创建一个名为tasks.json和projects.json的本地文件。假设NeDB的文档,这应该在当前目录中创建两个提到的文件,但它们不是创建的。NeDB只是在创建IndexedDB数据存储,我真的不知道为什么会这样。有没有人建议为什么会这样?
(预先谢谢:)
编辑
当我在主进程中创建数据存储时,文件将被创建。可能是,我无法访问呈现程序进程中的文件系统吗?
发布于 2016-12-22 10:26:29
我对电子也很陌生,但就我从文档和教程中收集到的信息而言,与数据库的交互应该在主要过程中完成。然后,您应该使用ipc或remote来完成渲染程序进程与主进程之间的通信。反正我也是这样设置的。
我使用ipc将带有查询等的事件从呈现器发送到我的主服务器,然后以同样的方式将结果发回。这也允许你在应用程序中的多个地方监听相同的数据变化。(例如,当我从联系人中删除“最喜欢”状态时,该组件将被更新,但我也可以同时侦听我最喜欢的列表中的更新,以便重新加载它,因此它是最新的)
发布于 2017-01-28 17:21:16
为此,我在main.js中创建了数据存储,并将其作为全局对象共享。所以我可以在渲染程序过程中使用它,但是它仍然创建一个json文件作为存储,而不是indexedDb左右。
发布于 2019-01-21 19:04:25
如果使用vue-cli3,请在vue.config.js中添加以下webpack选项:
configureWebpack: {
target: 'electron-main'
}然后将创建一个本地文件,而不是使用浏览器的indexdb。
https://stackoverflow.com/questions/41230011
复制相似问题