3

React.js を使用した Electron アプリケーションで NeDB を使用して、いくつかのタスクとプロジェクトを永続的に保存しています。というファイルで 2 つのデータストアを初期化しています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-App にファイルをインポートしています。これは、Electron のレンダラー プロセスで発生します。filenameプロパティを使用して、NeDB に と という名前の 2 つのローカル ファイルを強制的に作成させましtasks.jsonprojects.json。NeDB のドキュメントを想定すると、現在のディレクトリに上記の 2 つのファイルが作成されるはずですが、作成されません。NeDB はIndexedDBデータストアのみを作成していますが、なぜそうなのかはよくわかりません。なぜこれが当てはまるのか、誰にも提案がありますか?

前もって感謝します :)

編集

メイン プロセスでデータストアを作成すると、ファイルが作成されます。レンダラー プロセスでファイル システムにアクセスできない可能性がありますか?

4

3 に答える 3

3

私も Electron にはかなり慣れていませんが、ドキュメントとチュートリアルから収集した限りでは、データベースとのやり取りはメイン プロセスで行う必要があります。次に、ipc または remote を使用して、レンダラー プロセスとメインの間の通信を行う必要があります。私はとにかくそう設定しています。

私は ipc を使用して、クエリなどを含むイベントをレンダラーからメインに送信し、同じ方法で結果を返します。これにより、アプリ内の複数の場所で同じデータの変更をリッスンすることもできます。(たとえば、連絡先から「お気に入り」ステータスを削除すると、そのコンポーネントが更新されますが、同時にお気に入りリストの更新をリッスンしてそれをリロードすることもできるため、最新です)

于 2016-12-22T10:26:29.437 に答える