Express.js如何不修改原server文件为所有已定义路由统一添加/api前缀
解决方案
你可以直接利用Express支持「将整个应用作为中间件挂载」的特性,无需修改server.js,仅需调整index.js代码即可实现统一添加路由前缀,效果和Nuxt的serverMiddleware配置完全一致。
修改后的index.js代码如下:
const express = require('express'); // 导入原server.js的express应用,重命名避免和新的顶层应用冲突 const serverApp = require('./server'); // 创建新的顶层express应用 const mainApp = express(); const port = process.env.PORT || 3000; // 将原应用挂载到/api路径下,自动为所有原路由统一添加/api前缀 mainApp.use('/api', serverApp); const listen = (port) => { mainApp.listen(port, () => { console.log(`Backend listening on port ${port}!`); }); }; listen(port);
方案说明
- 该方案完全不需要改动
server.js的任何代码,后续server.js新增、修改路由时,index.js无需同步更新,所有路由都会自动带上/api前缀 - 路由匹配逻辑、参数解析、错误处理等原有功能完全不受影响,和挂载前的行为保持一致
内容的提问来源于stack exchange,提问作者druskacik
相关产品推荐
相关产品推荐

