📜  如何在 Express.js 中构建我的应用程序?(1)

📅  最后修改于: 2023-12-03 15:08:36.712000             🧑  作者: Mango

在 Express.js 中构建应用程序的指南

Express.js 是一个流行的 Node.js Web 框架,它为开发者提供了创建 Web 应用程序的工具和 API。 在本指南中,我们将介绍如何使用 Express.js 来构建应用程序。

什么是 Express.js?

Express.js 是一个用于构建 Web 应用程序的开源框架。它提供了一个轻量级、灵活、可扩展的 API,让开发者可以快速地构建 Web 应用程序。

Express.js 采用了 MVC 模式,通过路由、中间件等机制实现了灵活的控制器和视图的组合方式。同时,它还提供了一些内置的中间件,例如处理请求和响应、处理会话、处理错误等。

如何安装 Express.js?

在开始之前,您需要先安装 Node.js 运行环境。 在命令行中输入以下命令来安装 Express.js:

$ npm install express

安装成功后,您可以在项目中的 package.json 文件中看到 express 依赖项。

创建一个 Express.js 应用

让我们从创建一个基本的 Express.js 应用程序开始。 在命令行中创建一个新目录,并在其中创建一个名为 app.js 的文件,如下所示:

$ mkdir myapp
$ cd myapp
$ touch app.js

app.js 文件是我们的应用程序的入口文件。 在 app.js 文件中,我们将引入 Express.js 并创建一个服务器实例。以下是一个简单的示例:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!')
});

app.listen(3000, () => {
  console.log('Example app listening on port 3000!')
});

首先,我们加载 Express.js 库并创建一个应用实例。然后,我们使用 app.get() 方法创建了一个路由,该路由将处理根路径('/')的请求。

在应用程序启动时,我们调用 app.listen() 方法并将端口号设置为 3000。 现在运行以下命令:

$ node app.js

访问 http://localhost:3000/,即可看到 'Hello World!'。

路由

路由是 Express.js 应用程序的基本部分。 它们定义了应用程序如何响应客户端对某个 URL 的请求。 路由的工作方式以及如何使用它们在下面进行讲解。

基本路由

在 Express.js 中,路由是由一个 URI(或路径)和一个特定的 HTTP 请求方法(get、post 等)组成的。在我们的应用程序中,路由由 app.METHOD() 方法创建,其中 METHOD 是一个 HTTP 请求方法。

以下是一个简单的路由示例:

app.get('/', function (req, res) {
   res.send('Hello World');
})

上面的代码创建了一个 '/' 路由,它只响应 HTTP GET 请求。当客户端应用请求根路径时,应用程序将返回 'Hello World'。

路由参数

在 Express.js 中,可以在路由路径中定义参数,使得该路由能够响应来自多个 URL 的请求。 要定义路由参数,请在路径的内容中将参数名用冒号标记,例如:

app.get('/users/:userId/books/:bookId', function (req, res) {
   res.send(req.params)
})

上面的代码响应 URL '/users/34/books/8989',其中 userId = 34,bookId = 8989。

路由处理程序

路由处理程序是在客户端请求到达路由后执行的函数。 处理程序函数处理请求并返回响应。

在 Express.js 中,路由处理程序可以通过以下方式定义:

app.METHOD(PATH, HANDLER)

在这里,HANDLER 是一个处理程序函数,它将处理客户机请求,响应客户机请求,并执行必要的操作(将数据存储在数据库中等等)。

以下是一个示例路由处理程序:

app.get('/user/:name', function (req, res, next) {
   res.send('User name is ' + req.params.name);
})

在上面的例子中,我们正在定义我们的路由以使用 HTTP GET 请求方法。 它响应 /user/:name URL 路径。 如果在请求过程中发生错误,Express.js 会自动将错误传递给 next 中间件。

中间件

在 Express.js 中,中间件是在客户端请求被路由处理程序处理之前执行的一系列函数。 中间件有许多用途,例如记录日志、验证请求、处理错误、挂起请求等。

使用 app.use() 方法将中间件添加到我们的应用程序中。

以下是一个简单的中间件示例:

app.use(function(req, res, next) {
  console.log('Time:', Date.now());
  next();
});

上面的代码是一个简单的日志记录中间件,它记录每个请求的时间。

通过将中间件函数传递给 app.use(),我们告诉 Express.js 在路由处理程序处理客户端请求之前先执行该函数。

如果我们希望该中间件仅在特定路由上执行,可以将其添加为路由处理程序的第二个参数:

app.get('/user/:id', function (req, res, next) {
  if (req.params.id === '0') next('route');
  else next();
}, function (req, res, next) {
  res.send('regular');
});

app.get('/user/:id', function (req, res, next) {
  res.send('special');
});

上面的代码中,如果客户端请求的是 URL '/user/0' (id=0),则 Express.js 将跳过正常的路由处理程序,而是运行最后一个路由处理程序。

错误处理

错误处理是 Express.js 应用程序中一个重要的部分。错误处理程序可用于捕获来自路由、中间件和处理程序函数的错误,并将其传递给客户机请求。

以下是一个简单的错误处理程序示例:

app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

上面的代码是一个简单的错误处理程序,它将任何错误记录到控制台并返回一个 HTTP 500 错误。

结论

使用 Express.js 可以轻松地创建高度可扩展的 Web 应用程序。 本指南介绍了如何使用 Express.js 安装、创建、添加路由、中间件和错误处理程序。 通过这些功能,您可以开发出高性能的 Web 应用程序。

下一步您可以查看 Express.js 官方文档,深入了解所有功能和特性,创建出更加复杂的 Web 应用程序。