最佳答案
我试图理解 电子(以前的 Atom Shell)是如何工作的。
我来自一个传统的,MVC 风格的 web 应用程序,浏览器通过 路由系统调用 控制器动作,然后控制器从存储(文件系统,数据库,...)获取数据,并呈现一个 观景,然后发送回浏览器。一些操作可能会发送回 JSON,因为它们是通过 JavaScript/AJAX 调用的,而不是浏览器实际导航到它们。
我想创建它,但是作为一个跨平台的桌面应用程序。我知道 Atom Shell 结合了 Chromium-Browser 和 Node.js/v8运行时,但我不确定它们将如何通信。
我想我可以在 Web 服务器上运行一个完整的应用程序(基本上,一些 Node.js HTTP 中间件,比如 特快) ,但是这会创建一个网络可及的服务器(这也可能会触发防火墙)——我想做一个桌面应用程序的原因之一就是为了避免运行一个真正的服务器。基本上就像“普通”桌面应用程序中的 MVP/MVVM 模式。
有没有人能给我一些起点,我正在努力做什么?浏览器如何与节点运行时(他们称之为“客户端”)交谈告诉它“嘿,用 ID 12345获取我的记录”,然后客户端返回呈现的 HTML,或者浏览器只是返回一个 JSON 块并通过 JavaScript 模板引擎呈现它?