javascript - Node.js 通过管道发布请求并获取响应

标签 javascript node.js stream pipe

我有nodeJs Rest API服务器。

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

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

最佳答案

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

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

如果有人需要,请将其发布到此处。

关于javascript - Node.js 通过管道发布请求并获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58337537/

相关文章:

javascript - 媒体查询 : How to target only tablet?

javascript - 从 npm 安装插件会导致错误

javascript - 浏览包含 Node 模块但其中没有 .js 类的文件

javascript - 语法错误 : Cannot use import statement outside a module

javascript - JavaScript 中的非法字符

javascript - 如何使用 reactjs redux 将新记录附加到已显示的记录

javascript - NPM Run Build 命令语法不正确

javascript - 在新窗口中显示 pdf 流

php - 使用 stream_filter_* 在 PHP 中处理大型(超过 1 Gig)文件

c++ - 是否可以在 C++ 中使用 "compile out"流表达式?