Express 学习笔记纯干货(Routing、Middleware、托管静态文件、view engine 等等)

请问一下,Express 学习笔记纯干货(Routing、Middleware、托管静态文件、view engine 等等)
最新回答
说实话ゝ月亮是硪啃弯的

2025-03-30 05:24:32

Express 是一个基于 Node.js 的轻量级、快速、开放的 Web 开发框架,旨在简化 Web 和移动应用的构建。它以路由和中间件为核心构建,提供了一系列强大的功能,帮助开发者快速构建健壮、友好的 API 和 Web 应用。

Express 不仅简化了 Node.js 的特性,而是通过扩展 Web 应用所需的必备功能,提供了一系列丰富的 HTTP 方法和灵活的中间件组合,让 API 和 Web 应用的构建变得简单且高效。

### 安装和 hello world 示例

在安装 Express 时,若使用 `--save` 参数,表示将模块添加到项目的 `package.json` 文件的 `dependencies` 部分,便于自动安装依赖。若只需临时安装,可省略 `--save`。在创建项目文件夹后,如果文件夹名称与依赖名相同(例如 `express`),会导致安装失败,应删除重复部分后重新安装。

下面的代码启动了一个监听 3000 端口的 Web 服务器,对所有 `/` URL 返回 "hello world",其他路径返回 404 错误。`req` 和 `res` 对象遵循 Node.js 的标准,因此可以调用它们提供的方法,如管道操作。

### 路由(Routing)

路由定义了应用的端点以及对客户端请求的响应,通过路径和 HTTP 方法(如 GET、POST)组合而成。路由由特定的路径和方法组成,可以使用字符串、正则表达式或字符串模式。

路由句柄可以是一个函数、数组或两者混合,支持多个回调函数,其中 `next('route')` 可以跳过后续路由句柄。使用 `app.route()` 方法创建链式路由句柄,便于创建模块化的路由逻辑。

### 中间件(Middleware)

中间件是函数,用于访问请求对象、响应对象和中间件流程中的 `next` 函数。Express 中间件分为应用级、路由级和错误处理三种类型。错误处理中间件需使用 `err, req, res, next` 参数。

使用 `app.use()` 和 `router.use()` 加载中间件,应用级中间件绑定到 `app` 对象,路由级中间件绑定到 `express.Router()` 实例。

### 托管静态文件

利用 `express.static` 中间件托管静态文件,如图片、CSS 和 JavaScript。通过传递静态资源目录作为参数,可访问所有文件,无需在 URL 中显示目录名。

通过多次调用 `express.static` 并指定不同的挂载路径,可以提供多个目录的静态资源访问。

### 模板引擎使用

安装模板引擎并编写模板文件。创建路由来渲染模板,模板文件将被转换为 HTML。若未设置视图引擎,需指定视图文件后缀。

### Express 4 迁移指南

Express 4 是对 Express 3 的重大重构,应用更新至 Express 4 后,之前的 Express 3 应用将无法运行。主要变化包括内核和中间件系统的改进、路由系统的优化以及一系列其他调整。

迁移过程包括卸载旧的 Express 3 应用生成器,安装新的版本。确保遵循官方文档中的步骤,以顺利过渡到 Express 4。