【问题标题】:SAP Cloud SDK JS receives empty data from Enterprise Messaging QueueSAP Cloud SDK JS 从 Enterprise Messaging Queue 接收空数据
【发布时间】:2020-03-13 06:35:59
【问题描述】:

我已经构建了一个简单的基于cloud-SDK 的应用程序,用于在Enterprise messaging queue 中添加为Webhook,以便在事件进入队列后立即接收事件。

我有一个 OPTIONSPOST 函数。 OPTIONS 用于与队列握手,并且有效。

现在,当队列中有消息时,它会使用 POST 块访问我的应用程序,但 request body 将作为空对象出现。

我已经从postman 尝试过相同的操作,我能够在request body 中接收数据。仅来自Enterprise messaging queue,数据为空。

相比之下,为了验证这一点,我使用了基于Expressnodejs 应用程序,在那里我能够从队列中接收数据。

我在基于 Cloud-SDK 的代码中缺少什么?

POST 块,看起来像这样

  @Post('ems-events')
  receiveEmsEvents(@Body() requestBody: string, @Req() req:Request) {
     Logger.log("Event Received with Data:");
     Logger.log(requestBody);
     Logger.log(req.body);
     Logger.log("Log over--");
     Logger.log(Object.keys(req));

    return {};
  }

【问题讨论】:

    标签: sap sap-cloud-sdk sap-cloud-foundry


    【解决方案1】:

    截至今天,适用于 JavaScript 的 SAP Cloud SDK 不提供对企业消息传递的任何支持。你这里写的代码很可能是Nest.js代码,它是一个独立的框架。 话虽如此,Nest.js 确实在默认情况下运行 Express.js。因此,如果您能够使其在 Express 中运行,那么您应该能够使其在 Nest 中运行。

    【讨论】:

    • Nest.js 中可能存在什么问题。为什么只有 EMQ 正文是空的。除了@-Body 和@-Req 之外,还有其他方式接收数据吗?
    • 我不确定 Enterprise Messaging 使用的协议是什么。如果是 HTTP,它应该可以工作,否则我不知道......你能分享你为 Express 编写的代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 2021-04-29
    • 2022-12-19
    相关资源
    最近更新 更多