我知道这是错误的,但本质上我想
- 通过 promise 连接到 db/orm
- 等待该承诺履行并获得模型(承诺的回报)
- 使用结果形成中间件生成器函数以将模型放置在请求中
我怀疑这不是最好的方法,所以基本上我有两个问题:
- 我是否应该重写我的 db/orm 连接到生成器函数(我觉得更符合 koa 风格)
- 回到最初的问题(因为我确信我不会有机会重写我所有的业务逻辑) - 我如何等待承诺完成然后返回生成器函数?
这是我糟糕的尝试——这不起作用,老实说我没想到会这样,但我想从编写代码开始,有一些东西可以解决这个问题:
var connectImpl = function() {
var qPromise = q.nbind(object.method, object);
return qPromise ;
}
var domainMiddlewareImpl = function() {
let connectPromise = connectImpl()
return connectPromise.then(function(models){
return function *(next){
this.request.models = models ;
}
})
}
var app = koa()
app.use(domainMiddlewareImpl())