2017-10-01 8 views
0

데이터베이스에 대한 odbc-query와 같은 일부 비동기 작업을 수행하는 node-red로 REST 엔드 포인트를 완료했습니다.node-red http 응답에 대한 비동기 쿼리 대기

결과가 http-response에 대한 결과입니다. 그것은 단지 브라우저에 달려있다. http-response에 forward req 및 res 객체가 필요한 것 같습니다. 그러나 나는 그것을 어떻게 하는가?

[{"id":"a35e6901.509a1","type":"http in","z":"ec714e97.d73b58","name":"","url":"/get","method":"get","upload":false,"swaggerDoc":"","x":287.8571472167969,"y":1660.357177734375,"wires":[["7c116e0a.f8d67"]]},{"id":"98e22918.79bc4","type":"sqldbs","z":"ec714e97.d73b58","mydb":"8df7f8b0.bd44c","querytype":"select","name":"","x":723.5714111328125,"y":1644.6428833007812,"wires":[["de837ef9.5c1cf8"]]},{"id":"7c116e0a.f8d67","type":"function","z":"ec714e97.d73b58","name":"","func":"msq.topic = \"Select * from User\"\nreturn msg;","outputs":1,"noerr":0,"x":469.28570556640625,"y":1613.9286499023438,"wires":[["98e22918.79bc4"]]},{"id":"de837ef9.5c1cf8","type":"http response","z":"ec714e97.d73b58","name":"","statusCode":"","headers":{},"x":922.1428833007812,"y":1677.8570861816406,"wires":[]},{"id":"8df7f8b0.bd44c","type":"sqldbsdatabase","z":"","host":"127.0.0.1","port":"1433","db":"test","dialect":"mysql"}] 

답변

0

당신은이 모든 방법 http-out 노드로 http-in 노드에서 흘러 동일한 메시지 객체의 있는지 확인해야합니다 여기

는 흐름입니다.

이 메시지 개체는 msg.reqmsg.res 필드를 가지며 msg.res 필드는 http-out 노드가 브라우저에 응답을 다시 보내는 데 사용됩니다.

입력을받은 후 전달하는 노드는 출력을 위해 새 개체를 만드는 것뿐만 아니라이 필드를 보존해야합니다. 모든 내장 된 노드는 올바르게 게시되며 모든 게시 된 타사 노드와 마찬가지로이 작업을 수행합니다. 이 패턴을 따르지 않는 것을 발견하면 관리자에게 버그를 제기해야합니다.

당신의 흐름은 괜찮아 보이지만 나는 당신이 가지고있는 DB 노드를 사용한 적이 없기 때문에 그렇게 말할 수는 없습니다.