Koa系列-Middleware:koa-connect
2019-06-12
#koa
字数统计:4.1k 字
阅读时长 ≈ 4 分钟
很简单的一个中间件,用来转化 connect
和 Express
的中间件在 koa 上的使用。
直接分析代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function noCallbackHandler(ctx, connectMiddleware, next) { connectMiddleware(ctx.req, ctx.res) return next() }
function withCallbackHandler(ctx, connectMiddleware, next) { return new Promise((resolve, reject) => { connectMiddleware(ctx.req, ctx.res, err => { if (err) reject(err) else resolve(next()) }) }) }
function koaConnect(connectMiddleware) { const handler = connectMiddleware.length < 3 ? noCallbackHandler : withCallbackHandler return function koaConnect(ctx, next) { return handler(ctx, connectMiddleware, next) } }
module.exports = koaConnect
|