是否可以在节点红色"功能"内进行http GET请求?节点。 如果是的话,有人可以给我一些示例代码。
我想解决的问题如下: 我想用自定义命令解析msg.payload。对于每个命令,我想发出一个http请求,并用HTTP GET请求的响应替换该命令。
expl:
msg.payload = "Good day %name%. It's %Time% in the %TimeOfDay%. Time for your coffee";
%name%,%TimeOfDay%和%Time%应替换为http://nodeserver/name,...,http://nodeserver/Time的Get请求的内容。
答案 0 :(得分:1)
thnx Hardilb,
经过半天的搜索,我发现也可以通过在设置
之前放置一个节点来配置http节点msg.url = "http://127.0.0.1:1880/" + msg.command ;
msg.method = "GET";
我使用以下代码获取命令列表
var parts = msg.payload.split('%'),
len = parts.length,
odd = function(num){return num % 2;};
msg.txt= msg.payload;
msg.commands = [];
msg.nrOfCommands = 0;
for (var i = 0; i < len ; i++){
if(odd(i)){
msg.commands.push(parts[i]);
msg.nrOfCommands = msg.nrOfCommands + 1;
}
}
return msg;
答案 1 :(得分:0)
你应该避免在函数节点中进行异步或阻塞。
不要尝试在一个函数节点中完成所有操作,使用多个http Request节点链接多个函数节点,以便一次构建一个部分的字符串。
您可以通过将字符串存储在msg对象中的另一个变量而非有效负载中来完成此操作。
要注意的一件事是你应该确保在每次调用下一个http Request节点之前清除msg.headers