如何在JavaScript Express框架中实现路由配置?
在Express框架中实现路由功能的方法
Express的路由功能用于匹配客户端请求的URL路径,并执行对应的处理逻辑,下面分基础实现和模块化配置两种场景说明:
一、基础路由实现
如果路由数量较少,可以直接在主应用文件(比如app.js)中定义:
const express = require('express'); const app = express(); // 匹配GET请求的根路径 app.get('/', (req, res) => { res.send('首页内容'); }); // 匹配POST请求的用户创建接口 app.post('/api/user', (req, res) => { res.json({ status: 'ok', msg: '用户创建成功' }); }); // 启动服务 app.listen(3000, () => { console.log('服务运行在http://localhost:3000'); });
二、模块化路由配置
当业务复杂、路由数量较多时,拆分模块化路由能大幅提升代码的可维护性,具体步骤如下:
1. 创建子路由文件
分别为不同业务模块创建独立的路由文件,比如song.js和label.js:song.js示例:
const router = require('express').Router(); // 获取歌曲列表 router.get('/', (req, res) => { res.json({ data: ['晴天', '稻香'] }); }); // 获取单首歌曲详情 router.get('/:id', (req, res) => { res.json({ songId: req.params.id, name: '歌曲详情' }); }); module.exports = router;
label.js示例:
const router = require('express').Router(); // 获取唱片公司列表 router.get('/', (req, res) => { res.json({ data: ['杰威尔音乐', '华纳唱片'] }); }); module.exports = router;
2. 整合子路由到总路由
创建总路由文件(比如routes/index.js),将各子路由挂载到指定路径前缀下:
const router = require('express').Router() const songRouter = require("./song"); const labelRouter = require("./label"); // 挂载歌曲模块路由,访问路径前缀为/songs router.use('/songs', songRouter); // 挂载唱片公司模块路由,访问路径前缀为/labels router.use('/labels', labelRouter); module.exports = router
3. 在主应用中挂载总路由
最后在app.js中引入总路由,完成全局挂载:
const express = require('express'); const app = express(); const mainRouter = require('./routes'); // 给所有路由统一加上/api前缀(可选,也可直接用app.use(mainRouter)) app.use('/api', mainRouter); app.listen(3000, () => { console.log('服务已启动'); });
配置完成后,访问http://localhost:3000/api/songs会触发song.js中的列表接口,访问http://localhost:3000/api/labels则会触发label.js中的列表接口。
内容的提问来源于stack exchange,提问作者Arnold Pramudita Candra
相关产品推荐
相关产品推荐

