在 中 Express.js, routing 是一个重要的概念,它允许您定义应用程序如何处理来自用户的传入 HTTP 请求。 路由使您能够在用户向应用程序上的特定 URL 发送请求时指定特定操作。
第 1 步:创建基本 Route
要创建 route in Express.js,您可以使用 app.METHOD(PATH, HANDLER)
应用程序对象( app
) 的方法来注册 route 特定 HTTP 方法 METHOD 和路径 PATH。 HANDLER 是一个处理函数,当请求命中该函数时将调用该函数 route。
例如,要创建一个 route 处理 请求 GET
的 /hello
,您可以使用以下代码:
app.get('/hello',(req, res) => {
res.send('Hello, this is the /hello route!');
});
第 2 步:处理请求和响应
在处理函数中,您可以处理来自用户的传入请求并使用 req
(request) 和 res
(response) 对象进行响应。 该 req
对象包含有关传入请求的信息,例如 URL 参数、发送的数据、发送者的 IP 地址等。该 res
对象包含响应请求的方法,例如 res.send()
、 res.json()
、 res.render()
等。
第 3 步:处理多条路由
Express.js 允许您使用不同的 HTTP 方法为同一 URL 定义多个路由。 例如:
app.get('/hello',(req, res) => {
res.send('Hello, this is the GET /hello route!');
});
app.post('/hello',(req, res) => {
res.send('Hello, this is the POST /hello route!');
});
步骤 4:处理动态参数
您还可以定义包含动态参数的路由,动态参数由冒号( :
) 定义。 例如:
app.get('/users/:id',(req, res) => {
const userId = req.params.id;
res.send(`Hello, this is the GET /users/${userId} route!`);
});
当用户向 发出请求时 /users/123
,该 userId
变量的值为“123”。
第5步: Routing 与模块分离
在较大的项目中,您可能希望将路由分成单独的文件,以保持源代码的组织性和可管理性。 您可以使用 module.exports
在单独的文件中定义路由,然后将它们导入到主文件中。 例如:
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/profile',(req, res) => {
res.send('This is the /profile route in users.js!');
});
module.exports = router;
// app.js
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
第6步:处理不存在的路由
最后,如果用户请求不存在的 route,您可以定义 404 route 来处理它。 route 这是通过在主文件末尾 设置默认值来完成的:
app.use((req, res, next) => {
res.status(404).send('Route not found!');
});
我们已经学习了如何在 Express.js. 通过使用此功能,您可以灵活而强大地自定义和处理用户请求,使您的应用程序更具适应性和可扩展性。 不断探索和利用途径来构建丰富而精彩的Web应用程序!