我有类似的事先回应
function middleware(req: HapiRequest, res: Hapi.ReplyNoContinue) {
res({data: "something"})
}
后来我需要从路由处理程序访问该对象,我该怎么做?
答案 0 :(得分: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);
}
});
我制作了一条路线并为其指定了cheekibreeki
的先决条件,以回复pizza
。然后,先决条件中的已回复数据在request.pre['assignedname']
内的路由处理程序中可用。
另一种方法是使用request.app
对象。
如果您不想继续使用路由处理程序,则必须使用reply().takeover()
方法。
希望这有帮助。