我可以将控制权转移给 Hapi.js 中的另一个处理程序吗?
Can I transfer control to another handler in Hapi.js?
我在 Hapi.js 中有一个主路由处理程序,我需要根据发送的参数将控制权发送给另一个处理程序。
例如,如果我 POST 类型为 'twilio' 的消息,我想将请求转发到包含在我的 twilio 路由文件中的路由处理程序。如何将处理程序转发给另一个处理程序?
答案包含在这里:https://github.com/hapijs/hapi/issues/2515 作者:danielb2。您只需 return 调用您想要处理请求的处理程序并将响应和回复对象传递给它。
var twilioRoutes = require('./app/routes/twilio.js')(Hapi);
var emailRoutes = require('./app/routes/email.js')(Hapi);
server.route({
method: 'POST',
path: '/',
handler: function(request, reply){
if (request.payload.type == 'sms'){
return twilioRoutes.sendSms(request, reply);
} else if (request.payload.type == 'email'){
return emailRoutes.sendEmail(request, reply);
}
// else
return reply('Invalid Message Type');
}
});
我在 Hapi.js 中有一个主路由处理程序,我需要根据发送的参数将控制权发送给另一个处理程序。
例如,如果我 POST 类型为 'twilio' 的消息,我想将请求转发到包含在我的 twilio 路由文件中的路由处理程序。如何将处理程序转发给另一个处理程序?
答案包含在这里:https://github.com/hapijs/hapi/issues/2515 作者:danielb2。您只需 return 调用您想要处理请求的处理程序并将响应和回复对象传递给它。
var twilioRoutes = require('./app/routes/twilio.js')(Hapi);
var emailRoutes = require('./app/routes/email.js')(Hapi);
server.route({
method: 'POST',
path: '/',
handler: function(request, reply){
if (request.payload.type == 'sms'){
return twilioRoutes.sendSms(request, reply);
} else if (request.payload.type == 'email'){
return emailRoutes.sendEmail(request, reply);
}
// else
return reply('Invalid Message Type');
}
});