16 Node.js 后端小白教程:只生成中间件与路由之创建路由
在上一篇中,我们讨论了如何使用中间件来处理请求和响应。在本篇中,我们将专注于如何创建和管理路由。这是构建 Node.js 应用的核心部分,了解如何定义和使用路由能帮助我们有效地组织代码,并处理不同的用户请求。
认识路由
在 Node.js 中,路由用于定义 URL 路径与处理特定请求的功能之间的映射关系。路由通常用来处理 GET、POST、PUT、DELETE 等请求方法。
创建路由
要创建路由,我们通常使用 Express
框架。首先,确保你已经安装了 express
:
npm install express
接下来,我们可以通过以下方式创建一个简单的路由示例。
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。例如,我们希望创建一个获取用户信息的路由:
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
。
路由中间件
我们可以将中间件与路由结合使用。这在需要执行某些逻辑(如身份验证)之前调用时特别有用:
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
文件中,可以这样组织用户相关的路由:
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;
然后在主文件中引入并使用这个路由模块:
const userRoutes = require('./routes/user');
app.use('/user', userRoutes);
这样,访问 /user/123
将会调用 user.js
文件中的相应路由。
总结
在本篇中,我们学习了如何创建和管理路由,以及如何将中间件和路由结合使用。采用模块化的方式可以让我们的代码更加模块化和易于维护。接下来,我们将学习如何连接 MongoDB 进行数据库操作,这将使我们的应用能够存储和检索数据,增强应用的功能。
结合《中间件与路由之使用中间件》的内容,本篇《只生成中间件与路由之创建路由》的内容为你构建 Node.js 应用奠定了基础。希望你能继续学习下去,掌握更复杂的知识和技能。