节点红色js中的HTTP POST

时间:2014-08-26 07:52:48

标签: javascript json node.js node-red

我想知道如何使用API​​密钥将带有JSON数据的http POST请求放入某个服务器。我在http://nodered.org/docs/搜索但他们没有写清楚任何东西。文档非常混乱,甚至不太好理解。 但是,我试图POST一个字符串化的JSON数据:

{"version":"1.0.1","sensors":[{"sensor":"accel","output":[{"name":"accelert","type":"dcmotion"}]}]}

我已经在函数节点中编写了API(这里是API,而不是原始的)

var msg = {"version":"1.0.1","sensors":[{"sensor":"accel","output":[{"name":"accelert","type":"dcmotion"}]}]}

msg.headers: {
                    'x-api-key': 'ucasdfeacceacxfAIH2L4=',
                    'content-type': 'application/json"
                }

我从这里得到了这个例子:https://groups.google.com/forum/#!msg/node-red/nl9Be0dN55g/S_VYMTjOanEJ

我将输入节点添加为HTTP POST然后给出url并将其与函数连接添加一个调试节点。 现在我部署了它。我收到错误:API节点中出现意外的令牌

现在我不知道该怎么做。我没有得到如何做到这一点。请帮帮我。节点红色站点中没有可用的教程。

2 个答案:

答案 0 :(得分:2)

您应该使用 msg.payload = {... ,而不是 var msg = {...

因为 msg 是在节点红色节点之间传递的标准JSON对象消息,所以不应使用var声明,并且其有效负载属性包含消息正文,因此当为 HTTP请求节点提供 msg 时,有效负载属性将作为请求正文发送(请参阅信息选项卡) HTTP请求节点)。

答案 1 :(得分:1)

关于这个主题的后续问题,我看到你已经解决了你在这里遇到的问题。

要重复我在那里给出的答案,您要发布的有效负载应该位于名为“有效负载”的属性中。在您从函数返回的对象上。 http请求节点的文档描述了所有这些。

你会发现堆栈溢出中当前没有很多关于node-red的活动。希望这会随着时间的推移而改变,但是现在你会发现邮件列表反响更快。

另外,如果您有具体的反馈意见,我们欢迎您在邮件列表中使用。