javascript - 在 Nest.js 中使用 HTTP 在模块之间进行通信

标签 javascript node.js module nestjs

我在 Nest.js 中有 2 个模块,我们称它们为 Module1 和 Module2。 Module1 的端点为/api/module1,Module2 的端点为/api/module2。我正在尝试从 Module1 调用 Module2,如下所示

return await this.httpService
    .post(url, data1, {
        headers: header
    })
    .pipe(
        map(res => {
        return res.data;
        }),
    );

这里的 url 是/api/module2,data1 是我传递的参数。当我调用电话时,这就是我看到的

{"_isScalar":false,"source":{"_isScalar":false},"operator":{}}

当 promise 在完全完成之前返回时,我通常会看到此错误。不知道在这里要做什么不同的事情。调用此 httpService 的方法包含在 async 中,并且调用方法也有一个等待。

最佳答案

您看到的是一个尚未订阅的原始可观察值,可能是由于返回了 promise 而不是返回可观察值。 Nest 的 HttpService 默认使用 RxJS 而不是 async/await,但要解决此问题,您可以轻松地在 RxJS 对象后面添加 .toPromise(),而不必担心自己的订阅。

顺便说一句:有什么理由通过 HTTP 模块调用 API,而不是直接使用正确的值调用服务? REST 调用的开销似乎很大。

关于javascript - 在 Nest.js 中使用 HTTP 在模块之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62565261/

相关文章:

python - 如何将字符串转换为变量名?

javascript - 尝试在 javascript 中使用该库时无法找到模块 'collections/dict'

javascript - 使用 on() 动态创建的 <li> 元素事件附加不起作用

javascript - 将 id 值传递给一个不起作用的变量,只返回 itstrue

javascript - 无法在 Javascript 中使用第 n 个子级选择器内的变量值

javascript - 什么时候 .the(success, failed) 被视为 Promise 的反模式?

找不到 Python 模块 "cx_Oracle"模块

javascript - 删除数组内的特定元素(对象)

javascript - 为 <ul> 赋予文本框外观和感觉

javascript - 使用 nodejs 为 postgresql 创建多个数据库表