前导小数点可能与点混淆

A leading decimal point can be confused with a dot

我尝试通过节点红色获取一些地下天气信息。我已发出 HTTP 请求以获取十天每小时的天气。

我需要提取一个温度。 我用这个:

var newMsg = { payload: msg.payload.hourly_forecast.0.temp.metric };
return newMsg;

如果我将它放入调试控制台,msg.payload.hourly_forecast.0.temp.metric 可以工作,但在我的函数中,我有这个错误:

A leading decimal point can be confused with a dot: '.0'

所以我尝试了这个:

var toto = 0;
var newMsg = { payload: msg.payload.hourly_forecast + '.' + toto + '.' + temp.metric };
return newMsg;

但不工作,错误是

ReferenceError: temp is not defined (line 2, col 74)

msg.payload.hourly_forecast 是您在此处显示的数组 https://ibb.co/ejaxge

请使用msg.payload.hourly_forecast[0].temp.metric.

在此处阅读有关数组的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

要在 JavaScript 中寻址数组元素,您可以使用方括号表示法:

var newMsg = { payload: msg.payload.hourly_forecast[0].temp.metric };
return newMsg;

Node-RED 中的调试侧边栏也可用于标识任何消息元素的路径。这在此处的文档中进行了描述:https://nodered.org/docs/user-guide/messages#understanding-the-structure-of-a-message