koahub-skip
koahub skip middleware
Conditionally skip a middleware when a condition is met.
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;
-
};
-
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 returns true / false. If the function returns true for the given request, ithe middleware will not run. The function will have access to Koa's context via this
-
useOriginalUrl it should be true or false, default is true. if false, path will match against ctx.url instead of ctx.originalUrl.
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地址:
代码地址:
阅读(407) | 评论(0) | 转发(0) |