2017-07-29 69 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文件夹中编写方法将成为渲染过程的一部分。

希望这会有所帮助!