私はこれが間違っていることを知っていますが、本質的に私はしたいです
- promise を介して db/orm に接続する
- その約束を果たし、モデルを取得するのを待ちます (約束からの戻り)
- ミドルウェア ジェネレータ関数の結果を使用して、リクエストにモデルを配置します。
これは最善のアプローチではないと思うので、基本的に 2 つの質問があります。
- db/orm connect をジェネレーター関数に書き直す必要がありますか (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())