2017-06-14 16 views
0

私はデータベースを必要とするElectronを使って小さなアプリケーションを作成しようとしています。現在私はPouchDBをテスト中ですが、それは本当に重要ではありません。
コードの品質を向上させるために、一般的なデータベース要求を処理するクラスを作成しました。これは、dbにアクセスする唯一の方法です。電子データベース処理

メイン/レンダラーのプロセスの概念が正しく理解されているかどうかはわかりませんが、メインプロセスはdbアクセスに注意する必要があります。だから、これは私の現在の設定です:

main.js

import Database from './database' 
export const myDB = new Database() 

database.js(明らかにのみスタブ)の

export default class Database { 
    hello =() => { 
    console.log("Hello World") 
    } 
} 

Root.js(1 UIコンポーネント[反応を使用]

const remote = require('electron').remote 
const main = remote.require('./main.js') 
... 
<button onClick={() => main.myDB.hello()}>Test</button> 

私の質問:これはコード構造化のための実現可能な解決策ですか、何か完全に間違っていますか?私のJSの経験はいくつかのjQueryエフェクトを使用しており、Nodeの経験は完全に欠落しています。これはちょっとしたホビープロジェクトなので、コーディングを始めたかっただけです)

答えて

0

右端にデータベースの関連コードをメインプロセスで実行する必要があります。

main.jsはメインプロセスですが、ブラウザウィンドウ(レンダラプロセスを作成する)を作成するコードがないようです。 Electron hereの例を見てください。魔法はcreateWindow()で起こります。

Root.jsはレンダラープロセスで実行され、 'remote'または 'ipcRenderer'を通じてメインプロセスとしか通信できません。後者はもう少し安全です。リモートに関するもう少し詳しい情報はon electron.rocksです。あなたは正しい方法でコード構造の面でそれをやっています。

メインプロセスは、BrowserWindowインスタンスとさまざまなアプリケーションイベントを作成および管理します。また、グローバルショートカットの登録、ネイティブメニューとダイアログの作成、自動更新イベントへの対応などを行うこともできます。あなたのアプリケーションのエントリーポイントは、メインプロセスで実行されるJavaScriptファイルを指します。メインプロセスではElectron APIのサブセット(下の図を参照)とすべてのnode.jsモジュールを使用できます。ドキュメントの状態:「基本的なルールである:モジュールがGUIまたは関連する低レベルのシステムである場合、それはメイン処理においてのみ利用可能であるべきである。」どこ

から引用

^

関連する問題