从NODE-RED字符串中提取

时间:2017-05-17 23:29:07

标签: javascript web-services node-red

我有我的NODE-RED架构:

enter image description here

从我的“功能”节点我的节点

后面的字符串结果
msg.payload : string[63]
"{"random":{"date":"22:55","random":21},"time":{"time":"22:52"}}"

这是我的“功能节点”的代码:

msg.payload.random=context.global.randomandtime;
msg.payload.time=context.global.time;

return msg;

我需要输入“部分字符串”(不是全部)像这样=&gt; {“date”:“ 22:55 ”,“随机”: 21 < / strong>}并在我的浏览器中将其显示为网页,但不使用html标记。

像这样:

22点55分

21

任何帮助都会很好。

我已经添加了模板(Mustache),我正在为它提供数据,(注意:http响应已在schemme中但未在此处显示)

enter image description here

我正在努力将数据带到这里(模板)。但我得到错误。

Mustache模板主体是:

这是有效载荷:{{#payload.randomandandtime.random}}!

但是我已经回复了这个错误:

2017-5-18 16:18:00node:Mustachemsg:string [56]

“Unclosed section”payload.randomandandtime.random“at 59”

在浏览器中我得到了

502 Bad Gateway:已注册的端点无法处理请求。

即使我只更改了payload.randomandandtime,我也会变空:

payload.randomandandtime

在浏览器&amp;控制台:

Messsage收到回复:(空) 这是有效载荷:!

1 个答案:

答案 0 :(得分:0)

最后我以这种方式解决了。 我在一个全局变量中创建所有变量而不是全局变量。 我把它传递给了胡子模板,在Mustache中我使用了上下文来获取它。

一般方案: enter image description here

然后在recoverydata中:

msg.payload = context.global.get("randomtime");

在我的胡子中:

`{{#payload.random}}
Last random number request returned {{&payload.random}}, which was received 
at {{&payload.randomtime.times}}{{/payload.random}}
{{/payload}}`

它的结果是不使用HTML的Web服务,这是:

url https://....../page

“上次服务时间请求的时间是13:14收到的最后一个随机数请求94,已于13:14收到”