koa-route无法运行

时间:2015-08-05 16:38:50

标签: koa koa-router

为什么以下代码输出为'一个'而不是'一个' ' 2&#39 ;?但使用快递路线是好的

app.use(route.get('/admin',requiredUser,index));

function *requiredUser(next){
        console.log("one"); //required session
        yield  next;
}

function *index(next) {
        console.log("two"); //ok save login
        this.body = yield render('admin');
 }

1 个答案:

答案 0 :(得分:1)

koa-route只需要一个处理程序 - 无论你给它的第二个参数。这就是为什么它只执行你的第一个处理程序。

您可以使用https://github.com/koajs/compose将一组处理程序合并为一个:

var compose = require('koa-compose');

app.use(route.get('/', compose([requiredUser, index])));

或者您可以使用其他路由库,例如https://github.com/alexmingoia/koa-router,它具有您最初期望从koa-route行为的行为:

var app = require('koa')();
var router = require('koa-router')();

router.get('/', requiredUser, index);

app.use(router.routes());
app.listen(3000);