【问题标题】:Read coordinates from txt file with Node.js使用 Node.js 从 txt 文件中读取坐标
【发布时间】:2019-08-22 16:36:28
【问题描述】:

我从 RFID 传感器接收一些坐标并将其保存在 .txt 文件中。我需要阅读这些坐标并应用一些计算(矩阵演算)。

如何实时阅读?我注意到我无法使用 FS,因为我的 .txt 文件从未完成,我的传感器每秒都在保存数据。

这些是我在文本文件中的坐标:

{"coordinates":{"x":-775,"y":-1217,"z":780},"tagId":"26459"}
{"coordinates":{"x":-152,"y":-113,"z":-1327},"tagId":"26398"}
{"coordinates":{"x":-770,"y":-1185,"z":731},"tagId":"26459"}
{"coordinates":{"x":-137,"y":-104,"z":-1337},"tagId":"26398"}

【问题讨论】:

  • 您可能会找到答案here

标签: node.js coordinates readfile node-red


【解决方案1】:

您需要使用node-red-node-tailnode

此节点专门执行您要查找的操作。

您需要通过JSON 节点运行消息,以将字符串转换为 JSON 对象,以便您可以访问每一行中的字段。

【讨论】:

  • 这似乎是我正在寻找的,因为我使用 Node-red 通过 MQTT 从我的 RFID 传感器获取数据。我所做的:使用 mqtt + 函数(过滤我的有效负载并仅获取坐标和 tagIds)+ 转换为 JSON 字符串 + 将其保存到文件 .log 由于我的坐标已经是 JSON 对象,我只需要使用这个 node-tail 在我的 node.js 服务器中,它会工作吗?谢谢
  • 如果消息已经通过 MQTT 进入,那么将它们写入文件只是为了将它们读回做其他事情是没有意义的,只需将您想要的任何流连接到您拥有的同一个节点馈送文件编写器。 (也stackoverflow.com/help/someone-answers
  • 我想要对我的坐标做的是应用一些比较和一些计算。由于 node-red 无法做到这一点,我考虑将其发送到 Node.js(使用 .log)并使用 Node.js 数学库来做我想做的事。 (做到了!)
  • 为什么 Node-RED 做不到(可以加载其他模块)?如果不能,直接在 Node.JS 应用中订阅 MQTT 数据,绝对不需要文件。
【解决方案2】:

我相信只要你在处理流,你仍然可以使用 FS。

例如,您可以执行以下操作:

const textFilePath = 'path/to/txt/file';
let stream = fs.createReadStream(textFilePath);

stream.on("data", (data) => {
  let chunk = data.toString();
  // Do something here with the data chunk ...
});

以同样的方式,您可以将写入流式传输到您的文件以确保一致的块事务。

stream.write(coordinateObject);

【讨论】:

  • 这不会在 Node-RED 中(无法访问函数节点中的 fs 节点)
猜你喜欢
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
相关资源
最近更新 更多