2017-12-02 20 views
0

私はこのようなroutes.jsを持っています匿名関数callbackの結果を返すので、どうすれば結果をh.reponse(result)に渡すことができますか?HapiJSルーティングの問題

+0

あなたは、あなたのコールバック内h.responseを呼び出す場合にのみ、それは匿名関数ハンドラ内で包まれているため –

+0

'h.response'はコールバックで利用できないことを行うことができます。 –

+0

私はh.responseが利用可能になると思っていますか? –

答えて

1

いくつかのデバッグ後、HAPIは約束を返すことができますので、約束の結果を返すことができます!

server.route({ 
    method: 'GET', 
    path: '/marvel/universal/verify/{serial?}', 
    handler: function(request, h) { 
     let obj = { "test": "a" }; 
     return new Promise(function(resolve,reject){ 
     Db.find('marvel', obj, 1, function(result) { 
      resolve(h.response(result)); 
     }); 
     }); 
    } 
}); 
+0

h.response(undefined)を返すとどうなりますか?結果の価値は何ですか? –

+0

そのことについてhの値は何ですか、私は私の提案を私のコードを更新しました。 node.jsデバッガを使用して、そのコールバックの変数を調べて、定義されているかどうかを確認することもお勧めします。 –

+0

'request'と' h'は 'Db.find '...ラッパー。それらが無名関数に入ると、データを 'handler'の字句コンテキストに返すためのアクセスを失います。 –