最常问的 Express.js 面试问题及答案

2025年03月17日 | 阅读 9 分钟

以下是最常问的 Express.js 面试问题及其最佳答案。

1) 什么是 Express.js?

Express.js,或简称 Express,是一个免费、开源、轻量级、快速的 Node.js 后端 Web 应用程序框架。它根据 MIT 许可证作为开源软件发布。

它旨在构建单页、多页和混合 Web 应用程序以及 API。它被称为 Node.js 的事实标准服务器框架。它由 TJ Holowaychuk 于 2010 年创立和开发,并用 JavaScript 编写。


2) Express 有哪些独特功能?

Express 是一个轻量级、简约且灵活的 Node.js Web 应用程序框架,它为 Web 和移动应用程序提供了一套强大的功能。以下是该框架的一些独特功能:

  • js 可用于设计单页、多页和混合 Web 应用程序以及 API。
  • 它允许设置中间件以响应 HTTP/RESTful 请求。
  • 它定义了一个路由表以执行不同的 HTTP 操作(方法和 URL)。
  • 它允许根据传递给模板的参数动态渲染 HTML 页面。
  • 由于其超快的 I/O,它提供高性能。它准备了一个薄层;因此,性能足够好。
  • 其类 MVC 结构使其能够将 Web 应用程序组织成 MVC 架构。
  • 它提供良好的数据库支持。它支持关系型数据库以及 NoSQL 数据库。
  • 它是异步且单线程的。
  • 其强大的 API 使路由变得容易。

3) Express.js 是前端还是后端框架?

Express.js 或 Express 是一个 JavaScript 后端框架。它主要用于开发完整的 Web 应用程序(单页、多页和混合 Web 应用程序)和 API。Express 是 MEAN 栈的后端组件,其中 M 代表 MongoDB,处理数据库;E 代表 Express,处理后端;A 代表 AngularJS,用于前端,N 代表 Node


4) 我们为什么要使用 Express.js?

Express.js 是一个自动预构建的 Node.js 框架,它使我们能够更快、更智能地创建服务器端 Web 应用程序。选择 Express 的主要原因是它的简单性、极简主义、灵活性和可伸缩性特性。


5) Express.js 和 Node.js 有什么区别?

Node.js 是一个开源、跨平台的运行时环境,用于在浏览器之外执行 JavaScript 代码。Node.js 不是一个框架或编程语言;它是一个充当 Web 服务器的平台。许多大公司,如 Paypal、Uber、Netflix、Wallmart 等,都在使用它。另一方面,Express 是一个基于 Node.js 功能的小型框架。

Express.js 和 Node.js 的一些主要区别

特性Express.jsNode.js
定义Express.js 是一个轻量级、快速的 Node.js 后端 Web 应用程序框架。Node.js 是一个开源、跨平台,用于在浏览器之外执行 JavaScript 代码。
用途Express.js 用于开发完整的 Web 应用程序,例如单页、多页和混合 Web 应用程序以及 API。它使用 Node.js 的方法和原则。Node.js 用于构建服务器端、输入输出、事件驱动的应用程序。
特点Express 比 Node.js 具有更多功能。与 Express.js 相比,Node.js 的功能较少。
构建块Express.js 构建在 Node.js 之上。Node.js 构建在 Google 的 V8 引擎之上。
编写于Express.js 仅用 JavaScript 编写。Node.js 用 C、C++ 和 JavaScript 语言编写。
框架/平台Express.js 是一个基于其功能的 Node.js 框架。Node.js 是一个运行时平台或环境,专为 JavaScript 的服务器端执行而设计。
控制器Express.js 分配有控制器。Node.js 分配有控制器。
路由Express.js 中提供路由。Node.js 中不提供路由。
中间件Express.js 使用中间件在服务器端系统地组织函数。Node.js 不使用任何此类中间件规定。
编码Express 易于编码,所需的编码时间更少。与 Express.js 相比,Node.js 需要更多的编码时间。

6) Express 代码是什么样的?

express.js 程序以“.js”扩展名保存。

请看示例

当您运行 Node.js 命令行时,应用程序将在指定的服务器地址侦听并给出以下输出。

输出

Welcome to tpointtech!

7) 编写一个在 Express.js 中获取 post 查询的代码。


8) 您对 Express.js 中的脚手架有什么了解?

脚手架是一种用于创建应用程序骨架结构的技术。它有助于用户轻松创建其公共目录、路由、视图等,或 Web 应用程序骨架。通常,用户手动创建其公共目录,添加中间件,创建单独的路由文件等。使用脚手架工具,他们可以设置所有这些,直接开始构建其应用程序。

有两种方法可以安装脚手架并在您的应用程序中使用它。

  1. Express 应用程序生成器
  2. Yeoman

Express 应用程序生成器:这用于快速创建应用程序骨架。使用以下命令安装 Express 应用程序生成器。

使用上述命令,将创建一个名为“myApp”的项目,并在项目中包含以下文件/文件夹。

  • Bin:bin 文件夹包含一个名为 www 的文件,它是应用程序的主要配置文件。
  • Public:public 文件夹包含 JavaScript、CSS 和图像等。
  • Routes:此文件夹包含路由文件。
  • Views:view 文件夹包含应用程序的视图文件。
  • js:app.js 文件是应用程序的主文件。
  • json:package.json 文件是清单文件。它包含项目的所有元数据,例如应用程序中使用的包(称为依赖项)等。

现在,我们必须使用以下命令安装 package.json 文件中提及的所有依赖项。

Yeoman:在您的终端中使用以下命令安装 Yeoman。

Yeoman 使用生成器来搭建应用程序。


9) 其他 MVC 框架也支持脚手架吗?

除 Express 之外的其他 MVC 框架也支持脚手架技术。以下框架主要支持它:Ruby on Rails、OutSystems Platform、Play framework、Django、MonoRail、Brail、Symfony、Laravel、CodeIgniter、YII、CakePHP、Phalcon PHP、Model-Glue、PRADO、Grails、Catalyst、Seam Framework、Spring Roo、ASP.NET 等。

点击此处了解有关脚手架的更多信息:https://tpointtech.cn/expressjs-scaffolding


10) Express JS 路由处理函数有哪些可用参数?

以下是 Express.js 路由处理函数可用的参数:

  • Req:请求对象
  • Res:响应对象
  • Next(可选):这是一个用于将管理传递给上述路由处理程序之一的函数。

注意:第三个参数是可选的,应该省略;但在某些情况下它很有用。


11) Express 和 Django 有什么区别?

Django 是一个用于测试和开发的独立轻量级 Web 服务器。另一方面,Express.js 是一个 Node.js 框架,可以设置中间件来回复任何 HTTP 请求。

以下是 Express.js 和 Django 之间的一些主要区别列表:

方面Express.jsDjango
架构Express 遵循 MVC 架构。Django 支持 MTV(模型-模板-视图)设计。它使用管理数据进行交互和验证。
框架Express 是一个免费、开源、轻量级、快速的 Node.js 后端 Web 应用程序框架,用于构建单页、多页和混合 Web 应用程序以及 API。这是一个基于 Python 的框架,用于在指定的时间范围内开发计算机应用程序。
效率它最适合在 Node.js 上快速开发 Web 应用程序。它更高效,交付速度快,因此具有成本效益。
编程语言Express 框架是用 Node.js 编写的。Django 是用 Python 编程语言编写的。
复杂度Express.js 比 Django 简单。Django 比 Express.js 复杂。
可扩展性它提供更好的可伸缩性。它的可伸缩性较差。
灵活性Express 是一个灵活、简约的 API 开发 Node.js 工具。它提供有限的灵活性。
全栈开发它提供全栈开发,从而降低成本,因为您无需雇佣多个开发人员来管理 Web 应用程序的后端和前端。它不提供全栈开发。
使用此技术的公司PayPal、IBM、Fox Sports 等公司正在使用此技术。Instagram、Mozilla、Bitbucket 等公司正在使用此技术。

12) 如何在 Express.js 应用程序中启用调试?

在不同的操作系统中,有不同的方法可以在 Express.js 应用程序中启用调试。

在 Linux 上使用以下命令:

在 Windows 上使用以下命令:


13) 如何在 Express.js 中允许 CORS?

我们可以通过在 server.js 中添加以下代码来允许 Express.js 中的 CORS:


14) 如何在 Express.js 中处理错误?请举例说明。

在 Express 4.0 及更高版本中,错误处理要容易得多。请按照以下步骤进行错误处理:

创建一个 Express.js 应用程序。Express 4.0 没有内置的错误处理中间件,因此您必须安装一个中间件或创建自定义中间件。

创建中间件

按如下方式创建中间件:

安装错误处理中间件

按如下方式安装错误处理程序:

创建变量

按如下方式使用中间件:


15) 编写代码以开始在 Express.js 中提供静态文件。

请参见示例:


16) Express.js 中的中间件是什么?中间件的不同类型是什么?

中间件是一个由 Express 路由层在最终请求处理程序之前调用的函数。

中间件函数用于执行以下任务:

  • 它用于执行任何代码。
  • 它还用于更改请求和响应对象。
  • 它负责结束请求-响应周期。
  • 它可以调用堆栈中的下一个中间件函数。

注意:如果当前中间件函数没有结束请求-响应周期,它必须调用 next() 将控制权传递给下一个中间件函数。否则,请求将挂起。

中间件类型

以下是中间件的主要类型:

  • 应用程序级中间件
  • 路由级中间件
  • 错误处理中间件
  • 内置中间件
  • 第三方中间件

应用程序级中间件:应用程序级中间件方法用于使用 app.use() 方法绑定到 app 对象。它适用于所有路由。

路由级中间件:路由级中间件用于绑定到 express.Router() 的特定实例。内置中间件:内置中间件随 4.x 版本引入。它结束了对 Connect 的依赖。

Express.js 中有以下内置中间件函数:

  • static:它用于提供静态资产,例如 HTML 文件、图像等。
  • json:它用于解析带有 JSON 有效负载的传入请求。它适用于 Express 4.16.0+
  • urlencoded:它用于解析带有 URL 编码有效负载的传入请求。它适用于 Express 4.16.0+

第三方中间件:有许多第三方中间件可用,例如:

  • Body-parser
  • Cookie-parser
  • Mongoose
  • Sequelize
  • Cors
  • Express-validator

为了在 Express.js 4 及更高版本中处理 HTTP POST 请求,我们必须安装一个名为 body-parser 的中间件模块。Body-parser 提取传入请求流的整个主体部分并将其暴露在 req.body 上。该中间件之前是 Express.js 的一部分,但现在您必须单独安装它。您可以使用以下命令安装它:

您可以使用 require 加载它并在以后使用它:

请参见示例:

注意:您可以在单个路由上将多个中间件作为数组使用。

请参见示例:


17) Express 支持哪些模板引擎?

Express.js 支持任何遵循 (path, locals, callback) 签名的模板引擎。


18) 我们如何渲染普通的 HTML?

无需使用 res.render() 函数“渲染”HTML。如果您有一个特定文件,可以使用 res.sendFile() 函数,但如果您从目录提供大量资产,则应使用 express.static() 中间件函数。