路由
在 Express 中,路由是处理客户端请求的关键部分。路由定义了 URL 路径与特定的请求方法(如 GET、POST、PUT、DELETE)之间的映射关系
基本路由
js
app.post('/submit', (req, res) => {
res.send('Data received');
});动态路由
- 你可以在路径中使用 路径参数
js
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID is: ${userId}`);
});- 你可以使用 正则表达式 来动态匹配某些路径。
js
app.get('/user/:userId([0-9]+)', (req, res) => {
const userId = req.params.userId;
res.send(`User ID is: ${userId}`);
});路由方法的链式调用
Express 允许你对同一路径注册多个路由处理方法,可以进行链式调用。这对于处理不同 HTTP 请求方法(如 GET、POST 等)非常有用。
js
app.route('/user')
.get((req, res) => {
res.send('GET request to /user');
})
.post((req, res) => {
res.send('POST request to /user');
});路由模块化
了使代码更加模块化和可维护,Express 允许你将路由分离到不同的文件中。你可以创建路由模块并将它们挂载到主应用中。
- 创建路由模块
js
const express = require('express');
const router = express.Router();
router.get('/profile', (req, res) => {
res.send('User Profile');
});
router.get('/settings', (req, res) => {
res.send('User Settings');
});
module.exports = router;- 在主应用中挂载路由模块
js
const express = require('express');
const userRoutes = require('./userRoutes');
const app = express();
// 挂载路由模块
app.use('/user', userRoutes);
app.listen(3000, () => {
console.log('Server running on port 3000');
});访问 /user/profile 和 /user/settings 时,会触发 userRoutes 中定义的路由。
