返回

Express框架:API解析与实战指南

后端

Express 框架:掌握其 API 和实战指南

在 Node.js 应用开发领域,Express 框架以其轻盈、简洁和高效率备受青睐。其丰富的 API 提供了构建功能强大的 Web 应用所需的工具。让我们深入探究 Express 框架的关键 API 和功能,并通过代码示例掌握其实战技巧。

路由设置

路由是 Express 框架的核心功能,它允许您将 HTTP 请求映射到特定的处理程序。Express 提供了多种设置路由的方法:

  • app.get(): 处理 GET 请求
  • app.post(): 处理 POST 请求
  • app.put(): 处理 PUT 请求
  • app.delete(): 处理 DELETE 请求
  • app.all(): 处理所有 HTTP 请求

在路由中,您可以指定路径、处理程序和中间件。例如,以下代码将处理对 /users 路径的 GET 请求,并使用 userController.listUsers() 函数作为处理程序:

app.get('/users', userController.listUsers);

视图引擎配置

Express 框架支持多种视图引擎,包括 Pug、EJS 和 Handlebars。您可以使用以下代码指定视图引擎:

app.set('view engine', 'pug');

随后,您可以在路由中渲染视图。例如,以下代码将在对 /users 路径的 GET 请求中渲染 users/list.pug 视图:

app.get('/users', userController.listUsers, (req, res) => {
  res.render('users/list');
});

全局变量存储

Express 框架允许您存储全局变量,以便在整个应用程序中访问。可以使用 app.locals 对象存储全局变量。例如,以下代码将存储一个名为 user 的全局变量,并将其值设置为 { name: 'John Doe' }

app.locals.user = { name: 'John Doe' };

您可以从任何位置访问全局变量,例如,以下代码将在对 /users 路径的 GET 请求中输出全局变量 user 的值:

app.get('/users', (req, res) => {
  res.send(app.locals.user);
});

HTTP 方法处理

Express 框架提供了处理 HTTP 方法的 API,包括:

  • req.method: 获取 HTTP 方法,如 GETPOSTPUTDELETE
  • req.query: 获取 URL 查询参数
  • req.body: 获取请求正文
  • res.status(code): 设置 HTTP 状态码
  • res.send(data): 发送数据
  • res.json(data): 发送 JSON 数据
  • res.redirect(url): 重定向到另一个 URL

例如,以下代码将处理对 /users 路径的 POST 请求,并使用 userController.createUser() 函数创建新用户:

app.post('/users', userController.createUser, (req, res) => {
  res.send(req.body);
});

中间件数据共享

Express 框架允许您使用中间件共享数据。中间件是在请求和响应之间执行的函数,可以用来处理请求、修改响应或存储数据。例如,以下代码将创建一个中间件,它将在请求中存储一个名为 user 的变量,并将其值设置为 { name: 'John Doe' }

app.use((req, res, next) => {
  req.user = { name: 'John Doe' };
  next();
});

然后,您可以在任何路由中访问中间件存储的数据。例如,以下代码将在对 /users 路径的 GET 请求中输出中间件存储的 user 变量的值:

app.get('/users', (req, res) => {
  res.send(req.user);
});

请求参数获取

Express 框架提供了获取请求参数的 API,包括:

  • req.params: 获取 URL 参数
  • req.query: 获取 URL 查询参数
  • req.body: 获取请求正文

例如,以下代码将处理对 /users/:id 路径的 GET 请求,并使用 userController.getUser() 函数获取用户:

app.get('/users/:id', userController.getUser, (req, res) => {
  res.send(req.params.id);
});

结语

Express 框架是开发 Node.js Web 应用程序的强大工具。掌握本文介绍的 Express 框架关键 API 和功能,您将具备 Express 框架的基础知识,可以开始构建自己的 Web 应用程序。

常见问题解答

  1. Express 框架的优点是什么?
    Express 框架轻巧、简洁、高效,提供丰富的 API 和强大的功能,可以轻松构建功能强大的 Web 应用程序。

  2. 如何设置 Express 框架中的路由?
    可以使用 app.get()app.post()app.put()app.delete()app.all() 方法设置路由,将 HTTP 请求映射到特定的处理程序。

  3. 如何使用 Express 框架存储全局变量?
    可以使用 app.locals 对象存储全局变量,以便在整个应用程序中访问。

  4. 如何处理 Express 框架中的 HTTP 方法?
    可以使用 req.method 获取 HTTP 方法,req.query 获取 URL 查询参数,req.body 获取请求正文,res.status(code) 设置 HTTP 状态码,res.send(data) 发送数据,res.json(data) 发送 JSON 数据,res.redirect(url) 重定向到另一个 URL。

  5. 如何使用中间件共享数据?
    可以在 Express 框架中使用中间件共享数据,中间件是在请求和响应之间执行的函数,可以用来处理请求、修改响应或存储数据。