smart-middleware
v1.0.1
Published
auto load middleware, auto matching middleware by config
Downloads
2
Maintainers
Readme
smart-middleware
Router middleware for koa.
feedbacks are welcome
Features
- auto loading router
- auto matching middleware by config
Installation
install with npm
npm install smart-middleware
Usage
/*step 1 app.js*/
var sm = require('smart-middleware');
var router = require('koa-router')();
var app = require('koa-router')();
var middlewares = [
{url: '/list',
fn: [function *(next){
"use strict";
this.body = '_m_1';
yield next;
this.body += '_end_1';
}, function *(next){
"use strict";
this.body += '_m_2';
yield next;
this.body += "_end_2";
}
]},
{url: '\\^(?!/open)', fn: [function *(next){
"use strict";
this.body += '_m_3';
yield next;
this.body += '_end_3';
}, function *(next){
"use strict";
this.body += '_m_4';
yield next;
this.body += '_end_4';
}]}
,{url: '\\^(/open)', fn: [function *(next){
this.body = '_m_1';
yield next;
this.body += '_end_1';
}]}
];
sm.autoLoading({router: router/*required*/, middleware:middlewares, path:__dirname +'/routers'/*required absolute path*/});
app.use(router.routes());
/*step 2 /routers/user.js*/
module.exports = function(router){
router.get('/list', function *(next){
this.body += '/list';
});
router.get('/open/user', function *(next){
this.body += '/open/user';
});
};
- when you visited the '/list' url , the response body is _m_1_m_2_m_3_m_4/list_end_4_end_3_end_2_end_1
- when you visited the '/open/user' url , the response body is _m_1/open/user_end_1
middleware roles
- template: {url: 'url', fn: [m1,m2]}
- if template.url beginning with '\\', it will be matched by regExp, else it will be matched by '===';
middle load rules:
- the loading sequence is the middleware order; like the above example, when middlewares are [[m1, m2], [m3, m4]], the loading sequence are [[m1, m2], [m3, m4]].
Test
npm test
Support
If you have any problem or suggestion please open an issue here.