Хапи - изменить полезную нагрузку в обработчике и переслать на другой сервер

Я работаю с Hapi 17, обрабатывая выходные данные приложения изоморфного реагирования, и мне нужно выполнить некоторые проверки выходных данных (которые могут быть как json, так и формы), прежде чем перенаправить их в сервис вниз по течению.

Я написал этот обработчик:

            Server._instance.route({
            method: ['POST'],
            path: '/services/diary/{p*}',
            handler: async (req: Hapi.Request, h: Hapi.ResponseToolkit) => {

                let existingPayload = req.payload as DiaryAndUICruft;

                Object.defineProperty(existingPayload, '_redirect', {
                    value: '/sampleUrl', // getter omitted for brevity
                    writable: false
                });

                const completeAddress = `http://${remoteAddress}:${remotePort || 1337}${req.url.path}`;
                const promise = wreck.post(completeAddress, {
                    payload:
                        req.headers['content-type'].indexOf('application/json') !== -1
                            ? existingPayload
                            : qs.stringify(existingPayload),
                    headers: req.headers
                });
                try {
                    const u = await promise;
                    return u.res.statusCode === 302 ? h.redirect(u.res.headers.location) : h.response(u.payload);
                } catch (err) {
                    console.info('it did not work ', err);
                    return err;
                }
            }
        });

С JSON это работает просто отлично. Я вижу на другом сервере полезную нагрузку, которая обрабатывается правильно; но если это форма, то в 50% случаев полезная нагрузка пропускает ее части. Я подозреваю, что написал эту вещь таким образом, чтобы попытаться переслать ее, даже если полезная нагрузка все еще находится на рассмотрении (но отладчик, кажется, опровергает это). Я уверен, что мне не хватает классического слона в комнате, но, как бы я ни искал, я не могу найти пример изменения полезной нагрузки с hapi 17, версией, с которой я незнаком.

0 ответов

Другие вопросы по тегам