2017-09-12 5 views
0

私はそれを行うことができますどのルートハンドラからオブジェクトにアクセスする必要があり、このプレミドルウェアからルートハンドラにデータを渡すには?

function middleware(req: HapiRequest, res: Hapi.ReplyNoContinue) { 
    res({data: "something"}) 
} 

以降のような事前応答何かを持っていますか?

+0

シングルトン?グローバルオブジェクトですか? – lumio

+0

ご質問はどうぞよろしくお願いいたします。 – Vladimir

+0

私はあなたがグローバルオブジェクトを探していると理解していましたが、そうですか? – lumio

答えて

1

前提条件を持つルートを定義する場合、各前提条件に名前を割り当てることができます。このように:

server.route({ 
     method: `get`, 
     path: `/pre`, 
     config: { 
      pre: [ 
       { 
        method: function (request, reply) { 
         reply(`pizza`); 
        }, 
        assign: `cheekibreeki` 
       } 
      ] 
     }, 
     handler: function (request, reply) { 
      reply(request.pre.cheekibreeki); 
     } 
}); 

私はpizzaを返信ルート、それが前提だcheekibreekiに割り当てられた名前を作りました。次に、前提条件内の応答データは、request.pre['assignedname']内のルートハンドラで使用できます。

別の方法では、request.appオブジェクトを使用しています。

ルートハンドラに進まない場合は、reply().takeover()メソッドを使用する必要があります。

これが役に立ちます。

関連する問題