2015-04-27 2 views
1

У меня есть главный обработчик маршрута в Hapi.js, который мне нужно отправить управление другому обработчику на основе отправленных параметров.Могу ли я передать управление другому обработчику в Hapi.js?

Например, если я отправляю сообщение с типом «twilio», я хочу переслать запрос обработчику маршрута, содержащемуся в моем файле маршрутов twilio. Как перенаправить обработчик на другой обработчик?

+0

Взгляните на http://hapijs.com/api#replycontinuedata – Whisher

+0

@Whisher бы reply.redirect() не может быть применимо здесь? – ZeMoon

+0

@Whisher Я думаю, что redirect возвращает ответ клиенту, говоря ему, чтобы перенаправить в другое место, что не является поведением, которое я ищу –

ответ

1

Ответ здесь: https://github.com/hapijs/hapi/issues/2515 by danielb2. Вы просто возвращаете вызов обработчику, который хотите обработать запрос, и передаете ему объекты ответа и ответа.

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'); 
    } 
}); 
Смежные вопросы