16 只生成中间件与路由之创建路由

在上一篇中,我们讨论了如何使用中间件来处理请求和响应。在本篇中,我们将专注于如何创建和管理路由。这是构建 Node.js 应用的核心部分,了解如何定义和使用路由能帮助我们有效地组织代码,并处理不同的用户请求。

认识路由

在 Node.js 中,路由用于定义 URL 路径与处理特定请求的功能之间的映射关系。路由通常用来处理 GET、POST、PUT、DELETE 等请求方法。

创建路由

要创建路由,我们通常使用 Express 框架。首先,确保你已经安装了 express

1
npm install express

接下来,我们可以通过以下方式创建一个简单的路由示例。

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

// 创建一个简单的路由
app.get('/', (req, res) => {
res.send('Hello World!');
});

app.listen(port, () => {
console.log(`应用正在运行在 http://localhost:${port}`);
});

在上面的代码中,我们先引入express,然后创建一个应用实例 app。使用 app.get() 方法定义了一个处理 GET 请求的路由,路由的 URL 为根路径 /

路由参数

路由还支持参数,这样我们可以创建动态的 URL。例如,我们希望创建一个获取用户信息的路由:

1
2
3
4
app.get('/user/:id', (req, res) => {
const userId = req.params.id; // 获取 URL 参数
res.send(`User ID: ${userId}`);
});

这里 :id 是一个路由参数,代表用户的ID。当请求如 GET /user/123 时,我们可以在回调函数中通过 req.params.id 获取到123

路由中间件

我们可以将中间件与路由结合使用。这在需要执行某些逻辑(如身份验证)之前调用时特别有用:

1
2
3
4
5
6
7
8
9
10
11
12
13
const authenticate = (req, res, next) => {
// 假设我们用某种方法检查用户的身份
const userAuthenticated = true; // 这里用 true 做示范
if (userAuthenticated) {
next(); // 用户认证通过,继续请求
} else {
res.status(401).send('Unauthorized');
}
};

app.get('/private', authenticate, (req, res) => {
res.send('This is a private route.');
});

在这个例子中,我们定义了一个名为 authenticate 的中间件,该中间件在访问 /private 路由之前会被调用。

路由的分模块管理

为了使代码更加整洁和可维护,我们可以将路由分离到不同的模块中。例如,在 routes/user.js 文件中,可以这样组织用户相关的路由:

1
2
3
4
5
6
7
8
9
10
11
const express = require('express');
const router = express.Router();

// 获取用户信息路由
router.get('/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID: ${userId}`);
});

// 导出路由
module.exports = router;

然后在主文件中引入并使用这个路由模块:

1
2
const userRoutes = require('./routes/user');
app.use('/user', userRoutes);

这样,访问 /user/123 将会调用 user.js 文件中的相应路由。

总结

在本篇中,我们学习了如何创建和管理路由,以及如何将中间件和路由结合使用。采用模块化的方式可以让我们的代码更加模块化和易于维护。接下来,我们将学习如何连接 MongoDB 进行数据库操作,这将使我们的应用能够存储和检索数据,增强应用的功能。

结合《中间件与路由之使用中间件》的内容,本篇《只生成中间件与路由之创建路由》的内容为你构建 Node.js 应用奠定了基础。希望你能继续学习下去,掌握更复杂的知识和技能。

16 只生成中间件与路由之创建路由

https://zglg.work/node-js-you-need/16/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论