Свойство request.payload.file всегда не определено в Hapijs.

Я пытаюсь протестировать загрузку одного изображения для моего API Hapi JS. Когда я пытаюсь получить доступ к свойству file в объекте полезной нагрузки, я получаю сообщение undefined.

Это мой обработчик маршрута:

server.route({
    method: 'POST',
    path: '/profile/upload-image',
    handler: async (request, h) => {

        let data = request.payload;
        console.log(data.file);

        return h.response(request.payload);
    },
    options: {
        auth: false,
        payload: {
            output: 'stream',
            parse: false,
            //multipart: true,
            maxBytes: 1024 * 1024 * 100
        }

    }
});

Это ответ, показанный в почтальоне:

введите здесь описание изображения

Я пробовал и в Бессоннице, просто чтобы убедиться, что это не проблема с Почтальоном; Я получаю тот же результат.

Что здесь может быть не так?

Я попытался установить: allow: 'multipart/form-data', но это не сработало. Я также пробовал несколько разных комбинаций, например. parse: true и увеличивая maxBytes, но это тоже не сработало.


person LondonGuy    schedule 13.06.2020    source источник


Ответы (1)


Эти настройки работали для меня:

    options: {
        payload: {
            maxBytes: 10485760,
            parse: true,
            output: 'stream',
            allow: ['multipart/form-data'],
            multipart: true
        }
    }

Кроме того, мне пришлось переключиться на Insomnia для тестирования, потому что Postman по какой-то причине выдает мне ошибку плохого запроса. Я помню, что испытывал нечто подобное в прошлом.

person LondonGuy    schedule 14.06.2020