2017-09-12 5 views
0

Ich habe vor Antwort so etwas wie dieseWie übertrage ich Daten von der Pre-Middleware zum Routen-Handler?

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

Und später muß ich von der Route-Handler auf das Objekt zuzugreifen, wie ich das tun kann?

+0

Singleton? Globales Objekt? – lumio

+0

Könnten Sie bitte eine Frage ausarbeiten? – Vladimir

+0

Soweit ich verstanden habe, suchen Sie nach einem globalen Objekt, oder? – lumio

Antwort

1

Wenn Sie eine Route mit einer Voraussetzung definieren, können Sie für jede Voraussetzung einen Namen vergeben. Wie folgt aus:

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

machte ich eine Route und zugewiesenen Namen cheekibreeki es Voraussetzung ist die pizza antwortet. Dann sind die geantworteten Daten innerhalb einer Voraussetzung im Routenhandler innerhalb einer request.pre['assignedname'] verfügbar.

Eine andere Möglichkeit ist die Verwendung request.app Objekt. Wenn Sie nicht mit dem Routen-Handler fortfahren möchten, müssen Sie reply().takeover() verwenden.

Hoffe, das hilft.

Verwandte Themen