我想将一系列app.use()调用移动到它自己的模块中。封装这个最简单的方法是function(app)在exports中暴露a ,但是我觉得交出app对象太不透明的接口了。
我想app.use()从模块外部公开一个中间件。我需要链接/组合内部使用的中间件。
有没有一种时尚的方式来做到这一点,或者有其他选择吗?最简单的方法是什么?我应该避免什么?
Bij*_*lle 14
这个答案有点晚了,但无论如何都在这里......
// composedMiddleware.js
const express = require('express')
const ware1 = (req, res, next)=>{...}
const ware2 = (req, res, next)=>{...}
const router = express.Router()
router.use(ware1)
router.use(ware2)
export default router
// app.js
const composedMiddleWare = require('./composedMiddleware.js')
app.get('/something', (req, res, next)=>{...})
app.get('/something', composedMiddleWare)
Run Code Online (Sandbox Code Playgroud)
如果代码不是不言自明,那么请注意路由器也是中间件。或者,更准确地说,“路由器本身的行为就像中间件,因此您可以将其用作 app.use() 的参数” ref。
| 归档时间: |
|
| 查看次数: |
2765 次 |
| 最近记录: |