我有一个主路由处理程序.js我需要根据发送的参数将控制权发送给另一个处理程序。
例如,如果我发布一条类型为"twilio"的消息,我想将请求转发到我的 twilio 路由文件中包含的路由处理程序。如何将处理程序转发到另一个处理程序?
答案包含在这里:由danielb2 https://github.com/hapijs/hapi/issues/2515。您只需将调用返回到要处理请求的处理程序,并向其传递响应和回复对象。
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');
}
});