Hapijs onPreResponse, перенаправленный ответ

Для моего API мне нужно иметь результат md5 для всех маршрутов, поэтому я использую:

server.ext('onPreResponse', function(request, reply) {
    var content = request.response.source;
    var code = request.response.statusCode;

    if(typeof request.headers.md5 != 'undefined' && code == 200) {
        content = md5(content);
    }

    if(!DEBUG && code != 200){
        content = "Error";
    }
    reply(content).code(code);
});

Когда ответ представляет собой ошибку 404, request.response не имеет response.statusCode... Я могу справиться с этим с помощью:

if(typeof code == 'undefined'){
    code = 404;
}

Но когда я пытаюсь просмотреть документацию, созданную с помощью Lout, я получаю следующее: some html code

Как я могу правильно переслать кодовое сообщение?


person user1740962    schedule 23.04.2015    source источник


Ответы (1)


Вы, вероятно, захотите использовать reply.continue(), а не reply().code()

Здесь был дан ответ на очень похожий вопрос: https://github.com/hapijs/discuss/issues/103

person Clarkie    schedule 23.04.2015