【问题标题】:Do I use Node.js to build a whole website? [closed]我是否使用 Node.js 来构建整个网站? [关闭]
【发布时间】:2019-12-09 11:58:04
【问题描述】:

最近几天我开始自学如何从头开始创建网站。

我买了一个网络空间,用 html、css 和 javascript 玩弄,当我想构建一个在线国际象棋游戏时,我学习了 Node.js

但我不明白 Node.js 的用途,因为documentation 展示了如何使用 Node.js 安装和创建新服务器(!)并处理请求。

  • 我是否不再需要在我的服务器上使用 apache 安装?

  • 我是否使用 Node.js 创建整个网站及其所有页面,例如索引或关于页面?

  • 如果我仅将 Node.js 用于 Web 应用程序,如何将 Web 应用程序添加到现有的 Apache 网站页面?

我想我真的很困惑,需要一些帮助来更好地理解 Node.js,因为有很多人在使用它。

【问题讨论】:

  • 没错。 Node 可以是你的整个 Web 服务器。
  • Node 可以为您做所有事情 - 它在技术上称为 Web 应用程序(服务器端)而不是网站(客户端),但它会做您想做的事情。
  • 但是我仍然可以将它仅用于 apache 环境中的 Web 应用程序吗?
  • 您需要研究像 Express.js 这样的 Web 框架来处理 url 路由并将它们映射到函数。然后将它托管在 Heroku 之类的东西上变得非常方便,您无需担心服务器基础架构。
  • 如果你想创建一个网站,你可能应该专注于客户端技术,因为你可以在没有 node.js 的情况下创建一个网站,但你不能在没有 javascript/css/html 的情况下创建一个网站。 node.js其实就是后端使用的javascript。

标签: javascript html node.js apache web


【解决方案1】:

我不再需要在我的服务器上使用 apache 安装了吗?

正确。您在 node.js 中创建整个 Web 服务器。您通常不使用或不需要 Apache。

我是否使用 Node.js 创建整个网站及其所有页面,例如索引或关于页面?

是的,您在 node.js 中创建了整个 Web 服务器,并使用它来为您的所有网页提供服务。通常,人们可能会使用一些带有 node.js 的库,例如 Express 来映射您的 Web 应用程序中的所有路由,并使用您最喜欢的模板引擎来帮助在 HTML 页面中填充数据,然后再将它们提供给客户端。在非常大的规模上,人们可能会考虑使用其他一些基础架构(如 nginx)从 node.js 服务器卸载静态资源以提高可扩展性,但在中小型规模时这不是必需的,因为 node.js 的扩展性非常好。

如果我仅将 Node.js 用于 Web 应用程序,如何将 Web 应用程序添加到现有的 Apache 网站页面?

您可以在不同的端口上运行两台网络服务器中的一台,并根据需要拥有两台作为您网站的一部分的网络服务器。但是,通常您会将您当前在 Apache 中拥有的所有内容移到您的 node.js 应用程序中。您不必这样做,但大多数人一开始不会以同时使用 node.js 和 Apache 构建网站为目标。


要记住的一点是,node.js/Express 在构建简单网站的方式上在概念上与 Apache 有点不同。默认情况下,node.js/Express Web 服务器根本不提供任何内容。因此,您不只是在 node.js 服务器上放置网页的目录层次结构并期望它默认为这些页面提供服务。如果这是您网站设计的一部分,您可以使用express.static()(Express 库的一项功能)轻松完成此操作,但您必须有意识地在 node.js 中进行配置(只需两行代码即可)。

【讨论】:

    【解决方案2】:

    如果您想编写一个“简单”的国际象棋游戏,最好的办法是开始学习 Canvas。 Mozilla 基金会的这个tutorial 是我个人使用并非常喜欢的一个。如果您希望计算机充当 CPU 对手,那么您可能需要使用服务器(node.js!)。

    您可以使用 Node.js 构建一个简单的网站,但这就像使用螺丝刀作为锤子一样。 Node.js 用于制作桌面应用程序和编程服务器。服务器(后端)分析用户输入并提供某种反馈。让我们以 StackOverflow 为例。前端(HTML、CSS、Javascript)就是你所看到的。所有这些都在浏览器中完成。您将该代码获取到某人的计算机以便他们可以呈现您的网站的方式是通过服务器。服务器做其他很酷的事情。当您在网站上进行搜索或保存帖子时,服务器正在处理存储该数据或为您找到正确的结果。如果您想构建一个 API,例如用于 Google 地图或 Yahoo Finance 的 API,您将使用服务器。

    如果您想使用 Node.js 制作自己的服务器,我建议您使用 Digital Ocean 或 Heroku。他们对初学者友好,并在业界受到尊重。 Heroku 是免费的,并由 Salesforce 拥有,如果这有所作为的话。但是,对于初学者来说,这是不必要的。我建议使用免费或低成本的托管平台来为您处理这些问题。

    Node.js 的特点是您可以使用它通过模板引擎创建网站,但我不建议这样做。您实际上是在编写服务器端 javascript 来创建 HTML。当您可以编写 HTML 本身时,大多数时候这是愚蠢的。只需让 node.js 部署它。

    【讨论】:

      猜你喜欢
      • 2010-10-12
      • 1970-01-01
      • 2017-10-08
      • 2019-06-11
      • 1970-01-01
      • 2010-10-08
      • 2014-11-05
      • 1970-01-01
      • 2015-05-25
      相关资源
      最近更新 更多