Как использовать `pre` в обработчике маршрута - hapi.js

Я должен вызвать метод, используя pre в маршруте. Я использую hapi-request. Я пытался использовать pre в объявлении маршрута, но получил ошибку. Что мне не хватает?

Мой исходный маршрут:

server.route({ 
    method: 'POST', 
    path: '/searchUser',  
    config: User.searchUser
})

Использование Pre

server.route({ 
    method: 'POST', 
    path: '/searchUser',  
    pre: validateUser, 
    config: User.searchUser
})

Ошибка

Error: Invalid route options (/searchUser) {
  "method": "POST",
  "path": "/searchUser",
  "config": {}
}
←[31m
[1] "pre" is not allowed←[0m   

person Anusha Nilapu    schedule 15.07.2015    source источник
comment
как выглядит validateUser?   -  person Clarkie    schedule 15.07.2015


Ответы (2)


pre следует использовать внутри объекта конфигурации.

Из документации по route-prerequisites в Hapi:

server.route({
    method: 'GET',
    path: '/',
    config: {
        pre: [
            [
                // m1 and m2 executed in parallel
                { method: pre1, assign: 'm1' },
                { method: pre2, assign: 'm2' }
            ],
            { method: pre3, assign: 'm3' },
        ],
        handler: function (request, reply) {
            return reply(request.pre.m3 + '\n');
        }
    }
});

Обновлен маршрут:

server.route({ 
    method: 'POST', 
    path: '/searchUser', 
    config: {
        handler: User.searchUser, 
        pre: [{ method: validate /* function to be called */ }]
    }
);
person Anusha Nilapu    schedule 17.07.2015
comment
Я не вижу, как это сильно отличается от моего ответа. - person ZeMoon; 18.07.2015

Свойство pre объекта конфигурации маршрута не является функцией (здесь), это массив объектов маршрутные требования

person Sachacr    schedule 15.07.2015
comment
Вы должны уточнить это в своем вопросе, это поможет людям ответить. :) - person Sachacr; 15.07.2015
comment
Ok. Даже я попробовал массив объектов, но получил ошибку Error: Invalid route options (/test) { "method": "GET", "path": "/test", "pre" ←[31m[1]←[0m: [ {} ] } ←[31m [1] "pre" is not allowed←[0m - person Anusha Nilapu; 15.07.2015