Ошибка при регистрации плагина "Отсутствует или не определен обработчик" - PullRequest
0 голосов
/ 02 сентября 2018

Я создаю пример приложения nodejs. В котором я добавил один плагин. Когда я пытаюсь выполнить приложение, я получаю сообщение об ошибке «Отсутствует или не определен обработчик».

Файл моего плагина

exports.plugin = {
    name: "test plugin",
    version: '0.0.1',
    register: async function (server: Hapi.Server, options) {
        try {
           routes(server);
        } catch (error) {
            console.error(error);
        }
    }
}

Следующий файл моего маршрута:

export default function (server: Hapi.Server) {
    server.route({
        method: 'GET',
        path: `/test/app`,
        config: contoller.testController()
    })
}

В контроллере я добавил следующий код

export class ControllerTest{

    public async testController(): Hapi.RouteOptions {
        return {
            handler: async (request, h) => {
                try {
                    return "hello";
                } catch (error) {
                    console.error(error)
                }
            },
            tags:["GET"]
        }
    }

}

Я попытался отладить код. Когда я добираюсь до файла маршрута, я получаю экземпляр класса ControllerTest, и метод также доступен там, даже при получении той же ошибки.

1 Ответ

0 голосов
/ 02 сентября 2018

Проблема была с контроллером. Из-за асинхронного метода он не работал. После удаления асинхронности из сигнатуры метода все работает.

public testController(): Hapi.RouteOptions {
        return {
            handler: async (request, h) => {
                try {
                    return "hello";
                } catch (error) {
                    console.error(error)
                }
            },
            tags:["GET"]
        }
    }
...