Node-red 崩溃 / JSON 有时输出 returns html
Node-red crash / JSON output sometimes returns html
我的 node-red 每天崩溃多次。
我认为可能导致的问题之一是我正在执行的 http 请求。
我正在请求 JSON 中的网页输出。
但有时我在日志中看到 returns HTML 中的错误。
网页服务器端可能有问题,但我的流程在这方面出错了。
SyntaxError: undefined:1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ^ Unexpected token <
2 Jan 15:26:26 - [error] [function:Filter temperatures] SyntaxError: undefined:1
我可以编辑我的函数以过滤掉它,并希望不再让 node-red 崩溃吗?
这是我用来解析 JSON 的函数示例。
datarequest = JSON.parse(msg.payload);
msg1 = {};
msg1.payload = datarequest.data.valvesetat.bypass;
return [msg1];
如果JSON周围的HTML没有{
个字符,你可以试试:
msg.payload = msg.payload.replace(/^.*?(\{/{.*\}).*/, '');
在调用 JSON.parse
.
之前
看起来网页返回的内容不是 JSON(我猜是某种错误)并且 JSON.parse()
无法解析它。
将 JSON.parse()
部分包含在 try/catch
块中并管理网页的响应。
我的 node-red 每天崩溃多次。 我认为可能导致的问题之一是我正在执行的 http 请求。
我正在请求 JSON 中的网页输出。 但有时我在日志中看到 returns HTML 中的错误。 网页服务器端可能有问题,但我的流程在这方面出错了。
SyntaxError: undefined:1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ^ Unexpected token <
2 Jan 15:26:26 - [error] [function:Filter temperatures] SyntaxError: undefined:1
我可以编辑我的函数以过滤掉它,并希望不再让 node-red 崩溃吗?
这是我用来解析 JSON 的函数示例。
datarequest = JSON.parse(msg.payload);
msg1 = {};
msg1.payload = datarequest.data.valvesetat.bypass;
return [msg1];
如果JSON周围的HTML没有{
个字符,你可以试试:
msg.payload = msg.payload.replace(/^.*?(\{/{.*\}).*/, '');
在调用 JSON.parse
.
看起来网页返回的内容不是 JSON(我猜是某种错误)并且 JSON.parse()
无法解析它。
将 JSON.parse()
部分包含在 try/catch
块中并管理网页的响应。