Объект объект отображается в узле - красная веб-страница - PullRequest
0 голосов
/ 30 июня 2018

Внедрение o / p узла функции в шаблон html с использованием узла red

Это мой поток

 [
{"id":"b9787755.ece25",
"type":"http in",
"z":"77c9615d.84a36",
"name":"httpin",
"url":"/rand",
"method":"get",
"upload":false,
"swaggerDoc":"",
"x":210,
"y":220,
"wires":[["413c2211.ae5254"]]
},
{
"id":"116ae20e.efc5a6",
"type":"template",
"z":"77c9615d.84a36",
"name":"",
"field":"payload",
"fieldType":"msg",
"format":"handlebars",
"syntax":"mustache",
"template":"Hello Random - {{ payload}}",
"x":540,
"y":260,
"wires":[["6e6cb7b7.a71f7"]]},
{"id":"6e6cb7b7.a71f7",
"type":"http response",
"z":"77c9615d.84a36",
"name":"http response",
"x":708,
"y":217.00003051757812,
"wires":[]
},
{
"id":"53ef12d8.fa353c",
"type":"inject",
"z":"77c9615d.84a36",
"name":"Inject1",
"topic":"Topic1",
"payload":"hello world",
"payloadType":"str",
"repeat":"2",
"crontab":"",
"once":true,
"onceDelay":"2",
"x":120,
"y":100,
"wires":[["413c2211.ae5254"]]
},
{
"id":"413c2211.ae5254",
"type":"function",
"z":"77c9615d.84a36",
"name":"Random Fn",
"func":"var context=\"\"\ncontext = \"hi\"+msg.payload.toString()+\"hi\"\nmsg.payload=context\nreturn msg\n",
"outputs":1,
"noerr":0,
"x":470,
"y":140,
"wires":[["5b901ff7.344e3",
"116ae20e.efc5a6"]]},{"id":"5b901ff7.344e3",
"type":"debug",
"z":"77c9615d.84a36",
"name":"Debug1",
"active":true,
"tosidebar":true,
"console":false,
"tostatus":false,
"complete":"payload",
"x":679.0000610351562,
"y":154,
"wires":[]
}
]

1 Ответ

0 голосов
/ 30 июня 2018

Значит, звучит так, как будто вы хотите отправить свои данные датчика в поток узлового красного цвета? Каждый раз, когда вы запускаете поток с узла http in, вам необходимо завершить этот поток с помощью http response ( не http request - то есть для вызова другой конечной точки http). Вам также необходимо убедиться, что вы повторно используете объект msg и сохраняете заголовки req / res.

Поскольку выходные данные вашей функции показывают правильную строку в узле отладки, вам просто нужно вернуть эту же строку с узлом http response. В приведенном выше примере, где вы хотите ввести URL-адрес http://servername/rand в браузере, ваш узел http in должен быть настроен для запросов GET. В этом случае выходная полезная нагрузка из узла http in будет пустой, поэтому ваша функция не будет выполнять то, что вы ожидаете. Но если вы сконфигурируете его для POST запросов, вам придется отправлять данные программно, а не из браузера.

В конце концов, звучит так, будто вам нужны два потока: POST прослушиватель, который принимает входящие данные датчика и сохраняет их в базе данных (или где-то еще), и GET прослушиватель, который принимает входящие параметры запроса создает SQL-оператор Select ... и возвращает результаты запроса. Для потока POST, даже если вы не возвращаете никаких данных, вам все равно нужно ответить кодом ОК 200.

...