Node.js труба отправляет запрос и получает ответ - PullRequest
1 голос
/ 11 октября 2019

У меня есть сервер API остальных узлов nodeJs.

У него есть некоторые контроллеры для загрузки файла на другой сервер nodeJs (отвечает за загрузку файла в корзину AWS).

Все это нормально работает сВ приведенном ниже коде проблема заключается в том, что я хочу перехватить ответ канала и распечатать его в журнале.

 req.pipe(request.post({ url: url, qs: qs}))
            .pipe(res)
                .on('error', ((err) => {
                    log.error(`getAudioSoundFile:: error: ${err} ${err && err.message}`);
                    return reject(err);
                }))
                .on('response', ((res2) => {
                    log.debug(`========================================`);
                    log.debug(`On response: ${res2['path']}`);
                }))
                .on('finish', ((res1) => {
                    // Update the exam status with question that was done
                    log.debug(`========================================`);
                    log.debug(`On Finish: ${res['path']}`);
                    log.debug(`On Finish: ${res1['path']}`);
                    return resolve(res);
                }))

Ответ возвращается клиенту правильно:

{ path: "some path" }

Но при попытке печати в логгер я получаю неопределенное значение.

1 Ответ

0 голосов
/ 11 октября 2019

Я нашел решение для этого, но не уверен, что это лучшая практика:

req.pipe(request.post({ url: url, qs: qs}))
            .on('data', ((data) => {
                log.debug(`getAudioSoundFile:: Path saved in AWS: ${data.toString()}`);
            }))
            .pipe(res)
                .on('error', ((err) => {
                    log.error(`getAudioSoundFile:: error: ${err} ${err && err.message}`);
                    return reject(err);
                }))
                .on('finish', ((res) => {
                    return resolve(res);

разместив его здесь, если это кому-нибудь нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...