【问题标题】:Why do we need Express server when we have a backend ready already当我们已经准备好后端时,为什么还需要 Express 服务器
【发布时间】:2017-06-16 12:10:33
【问题描述】:

我对 javascript 和 web 应用程序环境很陌生。我见过一个 react web 应用程序项目,它有一个公共目录、一个客户端目录和一个服务器目录。我有几个问题

  1. 如果我们已经准备好后端 API 和后端服务器,为什么还需要在前端项目中设置快速服务器文件

  2. 如果我们让前端响应并调用 API 来获取应用程序的数据,我们是否需要一个快速服务器。

  3. 前端项目中的后端服务器和快递服务器不是一样吗?

【问题讨论】:

  • 服务器通常只是一个自动化脚本,允许您在每次更改时不重新捆绑代码,有时还会进行一些“编译”。
  • 当你想用 react 进行服务器端渲染时,你还需要一个 express 服务器。如果您是新手,您应该使用指定的工具包,例如:mern.io/documentation.html

标签: javascript node.js reactjs express


【解决方案1】:

我们不需要 Express 服务器,但是添加它会带来很多好处:

  1. 它有助于为仅使用内存服务器的 Angular / react 应用程序添加压缩(如果您是这种情况)。

  2. 定义为您的项目提供静态文件的基本路径,还可以为每个请求添加 gzip 压缩头,以便服务器返回压缩版本。

  3. 帮助您将 API 调用解析为 UI 预期的正确格式,以便解析逻辑保留在 express 服务器中,而不是 UI。这在以后 API 响应发生变化时,或者当最终后端端点发生变化时,无需修改 UI,而是在 express server 中修改路由时很有帮助。

我在研究如何向 Angular 应用程序添加压缩时发现了这些和其他好处(事实证明,如果没有 express 或实际的 Web 服务器,你就无法做到)。

【讨论】:

    【解决方案2】:

    如果我们已经准备好后端 API 和后端服务器,为什么还需要在前端项目中设置快速服务器文件

    你没有。

    您需要一个 HTTP 服务器来侦听并响应您从客户端代码发出的任何 Ajax 请求。

    您需要一个 HTTP 服务器来侦听和响应对您的页面所需的 HTML 文档和静态资源(JS、CSS、图像等)的任何请求。

    这些可以是相同的 HTTP 服务器,也可以是不同的 HTTP 服务器,用 Express 编写或不使用 Express 编写。

    React 教程倾向于忽略提及这一点,而只是深入展示如何将 Express 用于所有事情。不要过多解读。

    如果我们让前端响应并调用 API 为应用程序获取数据,我们是否需要快速服务器。

    没有。见上文。

    前端项目中的后端服务器和快递服务器不是一样吗?

    也许吧。它是由你决定。见上文。

    【讨论】:

      【解决方案3】:

      没有“后端服务器”和“前端服务器”之类的东西,一个简单的 Web 应用程序由两个主要部分组成:

      1/ 一个服务于html页面的应用程序,它运行在后端,所以它通常被称为服务器,但是现在一个典型的云服务器可以同时运行数百个不同的服务应用程序

      2/ 前端,通常是一个复杂的 JavaScript 软件和 html 页面,动态发送到用户浏览器并在本地执行

      拥有一个工作网站的最低要求是一个服务器应用程序,它将根据用户请求返回一个或多个 html 页面。一个典型的 React + Node 项目组织如下:

      • 服务器目录:其中包含服务应用程序的所有代码 - 返回网页的代码,它还可以包含处理 REST API 的代码,以防您的客户端应用程序需要动态数据或如果您的服务器连接到数据库。请注意,网页服务器和 API 服务器可能是两个不同的或更多的应用程序。

      • 您通常不想将您的服务器代码分享给用户,因此通常您有一个包含 html 页面的公共目录,这是磁盘上唯一可供用户访问的位置(理论上)。该目录还可以包含网页所需的图片和资源,也称为静态资源

      • 1234563目录,因此它包含为应用程序提供服务所需的所有内容。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2017-11-13
        • 1970-01-01
        • 1970-01-01
        • 2014-01-08
        相关资源
        最近更新 更多