我可以使用浏览器而不是 Nodejs 来运行我的服务器吗?

问题描述 投票:0回答:1

我有一台服务器。我有一些决定服务器行为方式的 JavaScript 文件,并且我安装了 Nodejs。

我在 Nodejs 上运行这些 js 文件,瞧!我的服务器工作正常。它接受 http 请求并返回响应。

现在浏览器也可以执行js代码了。因此,理论上,我可以删除 Nodejs,在我的服务器中安装 Firefox,并让 Firefox 执行 js 文件(修改为适合 Firefox 的方言)。

然后,我就可以拥有一个在 Firefox 上运行的服务器了!

这可能吗?如果没有,为什么不呢?

javascript node.js browser server
1个回答
0
投票

有很多原因导致一般情况下这是不可能的:

  1. 没有服务器端网络功能。浏览器无法接收传入的 TCP 连接来服务 HTTP 请求。
  2. 缺少 Node.js 及其整个平台。 虽然 Node.js 和 Web 浏览器中都是 JavaScript(如果您的浏览器是 Chrome,则在这两种情况下甚至可能是 V8 JavaScript 引擎),但浏览器仍然是与 Node.js 截然不同的环境。您的服务器所依赖的许多库和操作系统服务可能会丢失,例如文件系统。虽然可以“浏览”某些 Node.js 模块以在浏览器中使用,但一般来说,网络服务器所做的事情与浏览器所做的事情在其平台要求方面有很大不同。
  3. 缺乏安全感。没有好的标准方法可以安全地做到这一点。可能是因为允许浏览器在未正确配置为服务器的情况下托管服务并接受传入连接的所有安全风险。尽管特定浏览器可能有扩展提供某种功能来接受传入连接,但这不是标准的 Web 浏览器行为,因为它从根本上来说是不安全的。本地沙盒浏览器无法访问系统资源来执行类似服务器的操作。

您最好的选择是继续使用 Node.js 作为您的 Web 服务器。

© www.soinside.com 2019 - 2024. All rights reserved.