我可以将控制权转移给 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');
  }
});