问题
在nodeRed中编写接口时,常用到http in +http response这2个模块,单纯中间加一个函数节点,用postman访问没有任何问题。同样,用Modbus模块进行plc地址的数据读写,由于节点较多,采用Modbus-Flex-Getter 和 Modbus-Flex-Write模块实现读写,单纯的采用注入的方式进行读写没有任何问题,而且payload输出含对象。
但是,将2部分内容整合起来,用Modbus模块的读写部分替换接口中的函数节点部分,以实现访问接口进行plc地址读写,并返回相对应结果的功能,理论上来说没有任何问题,可实际情况是,在http response中会报传递对象为空的告警。
解析
分析http in节点的使用,可以看到里面提到了一个res输出,强调该属性必须保留在传递给响应节点的消息上,而且在注意中也指明该节点不发送对请求的任何响应,该流必须包含HTTP响应节点才能完成请求。