【问题标题】:Node.js pipe post request and get responseNode.js 管道发布请求并获得响应
【发布时间】:2020-02-08 18:17:27
【问题描述】:

我有 nodeJs REST API 服务器。

它有一些控制器用于将文件上传到另一个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" }

但是当尝试打印到记录器时,我得到了未定义。

【问题讨论】:

    标签: javascript node.js stream pipe


    【解决方案1】:

    我找到了解决方案,不确定这是否是最佳做法:

    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);
    

    如果有人需要,请在此处发布。

    【讨论】:

      猜你喜欢
      • 2017-07-29
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多