koahub-skip
koahub skip middleware
koahub skip
Conditionally skip a middleware when a condition is met.
Install
npm i koahub-skip --save
Usage
With existing middlewares:
var skip = require('koahub-skip'); var serve = require('koa-static'); var static = serve(__dirname + '/public'); static.skip = skip; app.use(static.skip({ method: 'OPTIONS' }));
If you are authoring a middleware you can support skip as follow:
module.exports = function () { var mymid = function *(next) { // Do something }; mymid.skip = require('koahub-skip'); return mymid; };
Current options
-
method
it could be an string or an array of strings. If the request method match the middleware will not run. -
path
it could be an string, a regexp or an array of any of those. If the request path match, the middleware will not run. -
ext
it could be an string or an array of strings. If the request path ends with one of these extensions the middleware will not run. -
custom
it must be a function that returnstrue
/false
. If the function returns true for the given request, ithe middleware will not run. The function will have access to Koa's context viathis
-
useOriginalUrl
it should betrue
orfalse
, default istrue
. if false,path
will match againstctx.url
instead ofctx.originalUrl
.
Examples
Require authentication for every request skip the path is index.html.
app.use(requiresAuth().skip({ path: ['/index.html', '/'] }))
Avoid a fstat for request to routes doesnt end with a given extension.
app.use(static.skip(function () { var ext = url.parse(this.originalUrl).pathname.substr(-4); return !~['.jpg', '.html', '.css', '.js'].indexOf(ext); }));
wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统
wemall地址:http://www.wemallshop.com
代码地址:http://js.koahub.com/home/feature/koahub-skip