Do not try to send msg after http request error handled

Fixes #1344
This commit is contained in:
Nick O'Leary 2017-07-19 22:37:29 +01:00
parent c6e453fb00
commit 781ca77794
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
1 changed files with 16 additions and 10 deletions

View File

@ -244,19 +244,25 @@ module.exports = function(RED) {
} }
} }
// Convert the payload to the required return type // Check that msg.payload is an array - if the req error
msg.payload = Buffer.concat(msg.payload); // bin // handler has been called, it will have been set to a string
if (node.ret !== "bin") { // and the error already handled - so no further action should
msg.payload = msg.payload.toString('utf8'); // txt // be taken. #1344
if (Array.isArray(msg.payload)) {
// Convert the payload to the required return type
msg.payload = Buffer.concat(msg.payload); // bin
if (node.ret !== "bin") {
msg.payload = msg.payload.toString('utf8'); // txt
if (node.ret === "obj") { if (node.ret === "obj") {
try { msg.payload = JSON.parse(msg.payload); } // obj try { msg.payload = JSON.parse(msg.payload); } // obj
catch(e) { node.warn(RED._("httpin.errors.json-error")); } catch(e) { node.warn(RED._("httpin.errors.json-error")); }
}
} }
}
node.send(msg); node.send(msg);
node.status({}); node.status({});
}
}); });
}); });
req.setTimeout(node.reqTimeout, function() { req.setTimeout(node.reqTimeout, function() {