这是一个初学者的问题.我以前没有使用过NodeJS,所以对我来说有点混乱.我没有看到服务器模块和客户端模块之间的明确分离.看起来我可以使用"npm"(Node的包管理器)来安装客户端模块和服务器模块.
我的问题与此页面特别相关:http: //electron.atom.io/docs/v0.36.8/api/synopsis/
它说我可以在客户端使用Node模块:
除了使用节点模块的额外功能外,渲染器过程与普通网页没有什么不同:
<!DOCTYPE html>
<html>
<body>
<script>
const remote = require('electron').remote;
console.log(remote.app.getVersion());
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这有什么用呢?节点在服务器端运行,浏览器(他们称之为"渲染器"进程)如何能够使用Node的包?
主进程和渲染器!=服务器和客户端
NodeJS 是服务器端,而不是客户端。
在桌面应用程序上,您不必拥有服务器。但是使用电子,您可以直接在您的应用程序中使用节点。
简单的方法:使用电子,将 NodeJS 视为一个工具箱来做很酷的事情。就像文件系统操作一样,忘记了客户端和服务器的事情。
(你不能用 jquery 等做的事情,但你需要桌面应用程序的东西)
所述主处理是用于处理/创建BrowserWindows(渲染器)和用于从一个渲染器视窗到另一个一些通信。(也许还有其他一些特殊的东西)
该渲染器是你真正运行大部分的应用程序。使用节点,您拥有所需的一切。一站式轻松调试(chrome 开发工具)。
您可以要求“fs”> NodeJS 文件系统
从硬盘读取文件或文件夹。
您可以在渲染器/浏览器窗口显示的 html 文件(脚本标记)中执行此操作。
这对我来说也很困惑,我的回答肯定不是完美的,完全正确的。但我的建议是,尝试在渲染器中执行所有操作。当您必须使用主进程时,您会注意到这一点。
我认为他们想说的是,您也可以使用通常为 Node 指定的模块来在前端使用。由于 Electron 被设计为用作桌面应用程序而不是浏览器,因此它们可以让您更轻松地交换代码。
我不完全确定你什么时候想在大多数时间使用它。我认为他们这样做是为了更轻松地集成 bluebird.js 之类的东西,这是一个承诺库,我可以看到它很容易在前端和后端包上使用,即使它主要只用于 NodeJS。
该代码向您展示的是您可以通过以下方式导入模块:
const remote = require('electron').remote;
console.log(remote.app.getVersion());
Run Code Online (Sandbox Code Playgroud)
这意味着加载我的“服务器端”应用程序('electron').remote,现在让我通过remote.app.bluebird例如调用这些包。您可能并非每次都需要或想要使用它,但它是可用的。
我认为最棒的是,如果您专门为 Electron 构建一个库,您可以以某种方式编写它,使其在服务器端和客户端之间更加无缝。如果您曾经使用过 socket.io,这就是它的工作原理。服务器端和客户端的语法几乎相同,但它们必须单独编写,以便一个在服务器端工作,一个在客户端工作。有了这个,就可以对所有事情使用相同的代码库。
尽管如此,我还是不知道什么是好的/完美的用例。当然,我认为您可以在一侧保留一个 JSON 存储,然后将其与导入一起拉入,这有点简洁,但再次不确定它有多有用。
| 归档时间: |
|
| 查看次数: |
8025 次 |
| 最近记录: |