2017-07-29 9 views
0

コード内のメインプロセスとレンダラーを区別する方法を理解することは難しいです。私は、サーバー側のメソッドを作成し、フロントエンド側でそれを呼びたい電子 - メインプロセスとレンダラープロセス

file structure

は、ここに私のファイル構造です。

どこに書きますか?メインまたはレンダラープロセスで?

上記の画像からjsフォルダ内の方法を書いた場合、それはメインまたはレンダラプロセスで考慮されますか?

+0

「サーバー側」とはどういう意味ですか?どこかでサーバーを稼働していますか? 'js'フォルダのJavaScriptはもちろん、そのJavaScriptをどこにインポートするかによって異なります。 – smarx

+0

@smarx私はサーバーを持っていますが、電子は私の研究に基づいて既知のノードを持っています。メインプロセスでjavascriptメソッドを実行する方法と、レンダラープロセスでそのメソッドを実行させる方法を教えてください。 –

+0

https://medium.com/@ccnokes/deep-dive-into-electrons-main-and-renderer-processes-7a9599d5c9e2をお試しください。 – smarx

答えて

0

main.jsファイルがBrowserWindowを作成した場所であると仮定しています。これはあなたの主なプロセスであり、サーバーサイドの方法を書く場所です。

あなたの主なプロセスでは、あなたがそうのようにいずれかの非同期または同期ipcMainを使用してメソッドを作成することができます

// In main process. 
const {ipcMain} = require('electron'); 
ipcMain.on('asynchronous-message', (event, arg) => { 
    console.log(arg); // prints "ping" 
    event.sender.send('asynchronous-reply', 'pong'); 
}); 

ipcMain.on('synchronous-message', (event, arg) => { 
    console.log(arg); // prints "ping" 
    event.returnValue = 'pong'; 
}); 

あなたがそのようにように(JSクロムインスタンスで実行されている)レンダリングプロセスでは、このメソッドを呼び出すことができます。

// In renderer process (web page). 
const {ipcRenderer} = require('electron'); 
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong" 

ipcRenderer.on('asynchronous-reply', (event, arg) => { 
    console.log(arg); // prints "pong" 
}); 
ipcRenderer.send('asynchronous-message', 'ping'); 

上記のjsフォルダにメソッドを書き込むことは、レンダリングプロセスの一部になります。

希望すると便利です。

関連する問題