Как передать два параметра в элемент запроса dashDB Node-Red из IBM Bluemix

Я пытаюсь передать два параметра в sql-запрос из объекта dashDB в редакторе потоков Node-Red в Bluemix. Мои параметры хранятся в msg.fromDate и msg.toDate, и я хочу ввести их в «Маркер параметров» узла dashDB. Когда я использую только один параметр, я просто набираю "msg.fromDate" в маркерах параметров, и все работает нормально. В логе вижу это:

2015-12-10T12:22:12.856+0100 [App/0] out Входной узел: pathToArray: msg,toDate 2015-12-10T12:22:12.856+0100 [App/0] out Input узел: Значения параметров: 2015-12-01

Теперь, когда я пытаюсь использовать два входных параметра, я набираю "msg.toDate, msg.fromDate" в "Маркере параметров", я получаю эту ошибку в журнале:

2015-12-10T12:26:01.271+0100 [App/0] out 10 Dec 11:26:01 — [ошибка] [dashDB in:popular words] TypeError: Невозможно прочитать свойство fromDate неопределенного

2015-12-10T12:26:01.270+0100 [App/0] out Входной узел: pathToArray: msg,toDate, msg,fromDate

Как передать два параметра?


person Marcin Labenski    schedule 10.12.2015    source источник


Ответы (2)


Я нашел причину этой проблемы. Похоже, что когда я ввожу «Маркер параметров» следующим образом:

msg.toDate, msg.fromDate

это не работает. И вот так это работает:

msg.toDate,msg.fromDate

Другими словами, пробел между параметрами нарушает его!

person Marcin Labenski    schedule 11.12.2015

У вас не может быть кавычек между параметрами, не уверен, добавили ли вы кавычки только для форматирования своего квеста или фактически добавили их к своим параметрам.

Я написал простой поток node-red с function node для построения запроса и самого dashDB node.

В моем function node у меня есть следующий запрос:

msg.fromDate = '2011-04-12 00:00:00';
msg.toDate= '2015-03-12 00:00:00';
msg.payload = "SELECT COL2 FROM DASH104951.TESTDATE WHERE START >= ? AND END <= ?";
return msg;

В dashDB node у меня просто есть текстовое поле Parameters Marker:

msg.fromDate,msg.toDate

Все работало нормально.

Вот мой поток с красным узлом, если вы хотите импортировать его в свое собственное приложение с красным узлом:

[{"id":"211a834b.dee57c","type":"inject","z":"197f318.fe680ce","name":"","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":117,"y":115,"wires":[["7a23c994.85dc38"]]},{"id":"7a23c994.85dc38","type":"function","z":"197f318.fe680ce","name":"Build Query","func":"msg.fromDate = '2011-04-12 00:00:00';\nmsg.toDate= '2015-03-12 00:00:00';\nmsg.payload = \"SELECT COL2 FROM DASH104951.TESTDATE WHERE START >= ? AND END <= ?\";\nreturn msg;","outputs":1,"noerr":0,"x":325,"y":123,"wires":[["559c92e4.aa636c"]]},{"id":"24974090.db68c","type":"debug","z":"197f318.fe680ce","name":"dashDB query result","active":true,"console":"false","complete":"true","x":773,"y":125,"wires":[]},{"id":"559c92e4.aa636c","type":"dashDB in","z":"197f318.fe680ce","service":"dashDB-0a","query":"","params":"msg.fromDate,msg.toDate","name":"","x":548,"y":131,"wires":[["24974090.db68c"]]}]
person Alex da Silva    schedule 11.12.2015
comment
Я не использую кавычки между параметрами - они использовались только для лучшего форматирования моего вопроса. - person Marcin Labenski; 11.12.2015
comment
хорошо, спасибо за разъяснение, надеюсь, мой ответ выше помог. Если нет, дайте мне знать. - person Alex da Silva; 11.12.2015