我是Node-red的新手,并尝试使用http响应节点重定向带有查询字符串的页面。
我读了this question,并成功使用标题位置重定向到URL。我的目标是使用msg.payload作为查询字符串重定向到网站。我的msg.payload包含一个简单的JSON对象,例如
{"id":"1", "condition":2, "nset":3}
我曾尝试将位置设置为http://[redirect_website]/getinfo?{{payload}}
,但将我重定向到了http://[redirect_website]/getinfo?{{payload}}
,而不是http://[redirect_website]/getinfo?id=1&condition=2&nset=3
。有人可以帮我这个忙吗?
您可能必须自己构建查询字符串。
因此,使用功能节点设置location
标头将类似于:
msg.statusCode = 303;
msg.headers = {
Location: "https://example.com/getinfo?id=" +
msg.payload.id + "&condition=" +
msg.payload.condition "&nset=" +
msg.payload.nset;
}
delete msg.payload;
return;
此代码仅在所有值都是数字的情况下才是安全的,如果某些值是字符串,则在添加它们之前需要确保对它们进行URLEncode。
[如果事情变得更复杂,您可能应该将querystring
模块(doc)添加到全局上下文中(如何将模块添加到全局上下文doc中),并在函数节点中使用它来生成查询字符串从msg.payload
对象开始。