如何将Express的app.use中间件配置拆分到独立文件并调用
实现方案
你可以通过两种常用方式拆分中间件配置,以下是可直接运行的实现代码:
方法1:封装注册函数(配置内聚性高,推荐)
首先新建中间件配置文件,例如./middleware/parse.js:
import express from 'express'; // 接收express实例作为入参,统一注册解析中间件 export default function registerParseMiddleware(app) { app.use(express.urlencoded({ extended: true })); app.use(express.json()); }
修改主文件代码调用配置:
import express from 'express'; import routes from './routes.js'; // 引入中间件注册函数 import registerParseMiddleware from './middleware/parse.js'; const app = express(); const port = 8080; // 传入当前app实例完成注册 registerParseMiddleware(app); app.use('/', routes); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) })
方法2:导出中间件列表(灵活度高,可自定义注册顺序)
新建配置文件./middleware/parse.js:
import express from 'express'; // 导出中间件数组 export const parseMiddlewares = [ express.urlencoded({ extended: true }), express.json() ];
主文件批量注册:
import express from 'express'; import routes from './routes.js'; import { parseMiddlewares } from './middleware/parse.js'; const app = express(); const port = 8080; // 遍历数组批量注册中间件 parseMiddlewares.forEach(middleware => app.use(middleware)); app.use('/', routes); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) })
注意:你原有代码里的
express.urlencode存在拼写错误,正确写法为express.urlencoded,末尾多一个字母d,否则运行会抛出方法不存在的报错。
内容的提问来源于stack exchange,提问作者user0999
相关产品推荐
相关产品推荐

