Express 是一个 Node.js web 应用框架,提供了一系列强大的功能来帮助开发者快速搭建 Web 服务,路由(Routing)是 Express 中一个核心的功能,它允许应用程序响应对特定 URL 或 URL 模式的请求。

基本路由
在 Express 中创建路由非常简单,你只需要调用 app 对象的get()、post()、put()、delete() 等 HTTP 方法,并传入路径和处理函数即可。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(Example app listening at http://localhost:${port});
});
路由参数
Express 支持在路径中使用参数,这些参数可以是字符串、数字或者布尔值,使用冒号: 开头可以定义一个路由参数,如下所示:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(User ID is: ${userId});
});
响应方法
在路由处理函数中,你可以调用多种方法来发送响应,如res.send()、res.json() 等。
app.get('/users/:id', (req, res) => {
res.send({ id: req.params.id, message: 'Welcome to user profile!' });
});
链式路由处理
Express 允许将多个路由处理函数链接在一起,以便于代码的组织和复用。

app.get('/users/:id', (req, res, next) => {
// 执行一些中间件逻辑
next();
}, (req, res) => {
res.send(User ID is: ${req.params.id});
});
中间件
中间件(Middleware)是介于请求和响应过程之间的函数,用于执行各种任务,如日志记录、请求体解析、错误处理等。
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});
路由器(Router)
为了组织复杂的路由结构,Express 提供了路由器(Router)对象,你可以创建一个模块化的路由,并在主应用中加载它们。
// users.js
const express = require('express');
const router = express.Router();
router.get('/:id', (req, res, next) => {
res.send(User ID is: ${req.params.id});
});
module.exports = router;
然后在主应用文件中引入:
const express = require('express');
const usersRouter = require('./users');
const app = express();
const port = 3000;
app.use('/users', usersRouter);
app.listen(port, () => {
console.log(Example app listening at http://localhost:${port});
});
单元表格:Express 常用路由方法
| HTTP 方法 | Express 方法 | 描述 |
| GET | app.get() | 处理到指定路径的 GET 请求 |
| POST | app.post() | 处理到指定路径的 POST 请求 |
| PUT | app.put() | 处理到指定路径的 PUT 请求 |
| DELETE | app.delete() | 处理到指定路径的 DELETE 请求 |
| PATCH | app.patch() | 处理到指定路径的 PATCH 请求 |
| ALL | app.all() | 处理到指定路径的所有类型请求 |
相关的问题与解答:
Q1: Express 如何处理带有查询参数的 URL?

A1: Express 通过req.query 对象提供访问查询参数的能力,对于 URLhttp://example.com/?name=john&age=30,可以使用req.query.name 获取john,使用req.query.age 获取30。
Q2: 如何在 Express 中进行路由前缀的处理?
A2: 在 Express 中,可以通过在app.use() 方法中指定路径前缀,然后挂载相应的路由器(Router),从而处理具有相同前缀的路由,如果你有一个路由器处理/admin 下的所有路由,你可以在主应用中这样使用:app.use('/admin', adminRouter);。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!