0

嗨,我使用以下命令创建了订阅 ( http) :InfluxDB

CREATE SUBSCRIPTION "test-data-update" ON "system_managment"."system_managment2d" DESTINATIONS ALL 'http://localhost:9001/ts/data-update'

并且在ExpressJs端口上运行的应用程序中9001添加了如下路由:

app.post("/ts/data-update/write", (req, res) => {
    console.log(">>influx data>>");
    console.log(req.body);
    res.sendStatus(200);
});

我以为我会得到所有的数据,req.body但我什么也没得到。如何通过influxdb 文档中提到的订阅获取数据。

我已经看到了更多正在使用Kapacitor的示例,但到目前为止我们还没有计划Kapacitor

让我知道如何从InfluxDB订阅端点获取更新的数据?或者它应该是这样的,我们已经InfluxDB从这个端点进行正常查询以获取数据?

4

1 回答 1

0

有同样的问题,解决方案是使用请求对象监听数据事件。

app.post("/ts/data-update/write",(req, res) => {
  logger.info('influx data>>');
  logger.info(req.headers);
  logger.info(req.body);
  req.on('data', (chunk) => {
    console.log(chunk.toString());
  });
  req.on('end', () => {
    res.sendStatus(200);
  });
});
  • 看到内容长度为正非零值的标头,并且在使用 express 的请求正文中没有值。
  • netcat然后我在订阅中的指定端口上收听,该端口托管了一个 TCP 服务器并在最后有内容。
于 2021-04-03T22:18:58.070 回答