使用 http 请求调用 Web 服务时节点红色崩溃

Node red crashing when use http request to call a webservice

我在开发进行 Web 服务调用的节点时遇到问题。

我正在使用:

正在抛出异常

node-red_1     | 30 Aug 21:21:50 - [red] Uncaught Exception:
node-red_1     | 30 Aug 21:21:50 - TypeError: Cannot set property listening of #<Server> which has only a getter
node-red_1     |     at _clone (/usr/src/node-red/node_modules/clone/clone.js:156:16)
node-red_1     |     at _clone (/usr/src/node-red/node_modules/clone/clone.js:156:18)
node-red_1     |     at _clone (/usr/src/node-red/node_modules/clone/clone.js:156:18)
node-red_1     |     at _clone (/usr/src/node-red/node_modules/clone/clone.js:156:18)
node-red_1     |     at _clone (/usr/src/node-red/node_modules/clone/clone.js:156:18)
node-red_1     |     at clone (/usr/src/node-red/node_modules/clone/clone.js:196:10)
node-red_1     |     at Object.cloneMessage (/usr/src/node-red/node_modules/node-red/red/runtime/util.js:53:13)
node-red_1     |     at /usr/src/node-red/node_modules/node-red/red/runtime/nodes/flows/Flow.js:262:48
node-red_1     |     at Array.forEach (<anonymous>)
node-red_1     |     at Flow.handleError (/usr/src/node-red/node_modules/node-red/red/runtime/nodes/flows/Flow.js:256:34)

我有一个数据列表,我需要 POST 到网络服务。 一切正常,直到我启动 HTTP post。 基本上,我有这段代码

    const objects = msg.payload || []
    const hpptCalls = objects.map(obj => (callback) => {
        processObject(obj, callback)
    })
    async.parallelLimit(hpptCalls, 5, (err, results) => {
        node.send(msg)
    })

在我的 processObject 函数中,我有几乎相同的代码存在于核心节点 21-httprequest.js

    const req = http.request(options, res => {
        let data = ''
        res.on('data', chunk => {
            data += chunk
        })
        res.on('end', () => {
            callback(null)
        })
    })

    req.setTimeout(120000, () => {
        node.error('Error', msg)
        req.abort()
        callback('Error')
    })

    req.on('error', err => {
        node.error(err, msg)
        callback(err)
    })

    if (content) {
        req.write(JSON.stringify(content))
    }

    req.end()

但是,似乎在调用第一个 HTTP post 时,我的 node-red 因该异常而完全崩溃。我能弄清楚是什么问题。我进行了很多尝试,认为我的代码破坏了某些东西,但它是一个简单的代码。

显然发现了问题,正如项目 github 中提到的那样。在流程中的一个随机点,有人用以下代码放置了一个功能节点

return {
   "_msg": msg
   [other properties]
}

谢谢! (好不容易找到问题了哈哈,我们流量大)