10 路由之4.1 定义路由

在上篇中,我们学习了如何创建第一个Express应用,并进行了简单的测试。在这一章中,我们将深入探讨如何在Express中定义和管理路由。路由是构建Web应用的核心部分,它决定了用户如何访问应用的不同部分和功能。让我们一起看看在Express中如何定义路由。

什么是路由?

在Web应用中,”路由”是指用来处理特定URL请求的定义。通过路由,应用可以将请求分发到相应的处理函数,以生成所需的响应。使用Express,定义路由非常简单且直观。

定义路由的基本方式

在Express中,我们可以使用app.get()app.post()app.put()app.delete()等方法来定义不同类型的HTTP请求的路由。例如,我们可以定义一个GET请求的简单路由,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
const express = require('express');
const app = express();
const port = 3000;

// 定义一个简单的GET路由
app.get('/', (req, res) => {
res.send('欢迎来到我的Express应用!');
});

// 启动服务器
app.listen(port, () => {
console.log(`应用正在监听 http://localhost:${port}`);
});

在上面的代码中,我们创建了一个基本的Express应用,并使用app.get()方法定义了一个根路由。当用户访问根URL(/)时,应用会响应“欢迎来到我的Express应用!”。

定义多个路由

在实际应用中,我们通常需要定义多个路由来处理不同的URL请求。例如,以下代码展示了如何定义多个GET路由:

1
2
3
4
5
6
7
8
9
// 定义一个关于路由
app.get('/about', (req, res) => {
res.send('这是关于页面!');
});

// 定义联系路由
app.get('/contact', (req, res) => {
res.send('这是联系页面!');
});

在上述示例中,我们添加了两个新的路由:/about/contact。当访问这些路径时,应用会分别返回关于页面和联系页面的内容。

使用路由处理函数

路由处理函数可以接受三个参数:req(请求对象)、res(响应对象)和next(用于调用下一个中间件函数)。在大多数情况下,我们只需要reqres。下面是一个例子,展示了如何使用请求对象和响应对象:

1
2
3
4
app.get('/user', (req, res) => {
const userId = req.query.id; // 从查询参数中获取用户ID
res.send(`用户ID是: ${userId}`);
});

在这个例子中,我们创建了一个路由/user,它可以接受一个查询参数id。用户通过访问如/user?id=123的链接时,应用会返回“用户ID是: 123”。

中间件与路由

Express允许我们在路由中使用中间件,这为处理请求提供了更多的灵活性。例如,我们可以使用中间件来记录请求信息:

1
2
3
4
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // 继续处理请求
});

在这个示例中,定义了一个中间件函数,用于记录每个请求的HTTP方法和URL。next()函数会将控制权传递给下一个中间件或路由处理程序。

总结

在本节中,我们探索了如何在Express中定义路由。从定义简单的路由到处理多个路由,以及如何使用中间件,我们掌握了一些基本的路由概念。正确地定义路由是构建高效的Web应用的关键,掌握这些要素将为你在后续的章节中学习路由参数等内容打下基础。

在下一章中,我们将继续深入学习如何使用路由参数来处理动态路径。

10 路由之4.1 定义路由

https://zglg.work/expressjs-zero/10/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

学习下节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论