node.js - 如何将 Web 界面添加到 Electron 应用程序?

标签 node.js api web electron

我想使用 Electron 构建一个桌面应用程序。
我知道 Electron 同时处理服务器和接口(interface)部分,我正在考虑以这样一种方式构建应用程序,使这两个部分明确分隔。

我 future 想做的是建一个网站,最有可能使用 React 并使用 Electron 应用程序作为服务器。

由于 Electron 基于 NodeJs,我不明白为什么这是不可能的。我计划公开一些 API 和 Web 应用程序以使用它们。因此,桌面应用程序的一部分也将成为 Web 应用程序的服务器。

我的问题是:

实现这一目标有多容易?

这种方法在安全问题方面如何?

最佳答案

How easy is it to achieve this?



通常,很容易。您需要做的就是创建一个 Electron 文件,在端口 X 上启动您的 Node.js 服务器,打开一个 BrowserWindow , 并指示 BrowserWindow加载服务器 url:http://127.0.0.1:X .

但是,传统的 Web 服务器通常具有与 Electron 应用后端不同的架构。 Web 服务器通常连接到包含所有用户数据的中央数据库,而 Electron 后端只管理一个用户的数据。这有几个含义:
  • Electron 应用程序后端可能会保留有关其一个用户的持久数据,即 Web 应用程序
    后端可能会保留有关其所有用户的数据数据库。
  • 如果一个 Electron 应用程序不保存持久数据,而是使用文件系统来读取和
    写文件时,Web 应用程序可能必须使用
    数据库,或者使用类似的沙盒文件系统
    Filesystem API .
  • 如果一个 Electron 应用程序不满足上述任何一项,请考虑您的应用程序是否需要
    一个后端。可以仅使用带有某些内容的静态文件来创建 Web 应用程序
    喜欢 Gatsby , 作为网络可能会更好
    页面比 Electron 应用程序。

  • And how does this approach stands in terms of security concerns?



    可以将您的服务器设置为监听 localhost , 或 127.0.0.1 .这表示
    您的数据仅通过设备而不是通过网络流动,这可以防止外部人员拦截它,除非他们已经破坏了设备。

    关于node.js - 如何将 Web 界面添加到 Electron 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62413965/

    相关文章:

    mysql - 尽管在 NodeJs 中使用 createPool 仍获取 mysql :"Too many connections"

    python - MySQL API 工作流程

    javascript - 使用 Node 保护 API

    网站中的 JavaScript

    node.js websocket.io 示例不起作用?

    linux - 使用 Git 进行自动部署

    javascript - 如何更改 config.js 中的数据库架构

    jquery - 显示显示所选地址的谷歌地图

    html - 在 apache 本地主机上添加内容

    用于在网站上查找事件端口的 Python 程序?