我试图围绕Electron(以前称为Atom Shell)的工作原理进行研究。
我来自一个传统的MVC风格的Web应用程序,在该应用程序中,浏览器通过路由系统调用Controller动作,然后Controller从商店(文件系统,数据库等)获取数据并呈现View,它被发送回浏览器。某些操作可能会发回JSON,因为它们是通过JavaScript / AJAX调用的,而不是通过浏览器实际导航到它们。
我想创建一个,但是作为一个跨平台的桌面应用程序。我知道Atom Shell将Chromium-Browser和Node.js / v8运行时结合在一起,但是我不确定它们如何通信。
我想我可以在Web服务器上运行一个完整的服务器(基本上是一些Express。这样的Node.js HTTP中间件),但这会创建一个可访问网络的服务器(它也可能使防火墙跳闸)-我想要制作台式机的原因之一应用程序正是为了避免运行真实的服务器。基本上就像“普通”桌面应用程序中的MVP / MVVM模式。
有人可以给我一些我想做的起点吗?浏览器将如何与节点运行时进行对话(称为“客户端”?),以告诉它“嘿,获取ID为12345的记录”,客户端将返回呈现的HTML,还是浏览器只会得到一个Blob JSON返回并通过JavaScript模板引擎呈现它?