2015-10-04 71 views
2

我正在使用koa-router,koa-views和sequelize。数据来自数据库,但状态= 404。我做错了什么?为什么koa路由器发送404?

router.get('/', function *() { 
    var ctx = this; 

    yield models.drivers.findAll({ 
    where: { 
     userId: ctx.passport.user.id 
    } 
    }).then(function(drivers) { 
    ctx.render('driversSearch', { 
     drivers: drivers 
    }); 
    }); 
}); 

回答

2

看起来你没有充分利用Koa的协同功能。您的代码可以这样重写:

router.get('/', function *() { 
    var drivers = yield models.drivers.findAll({ 
    where: { 
     userId: this.passport.user.id 
    } 
    }); 

    this.render('driversSearch', { 
    drivers: drivers 
    }); 
}); 

科阿使用the co library在引擎盖下。如果您承诺承诺,那么生成器函数将暂停,然后在履行承诺时恢复。

+0

不工作。 - > GET/404 115ms 6kb – Nicolas

+1

工作如果:yield this.render()。谢谢! – Nicolas