🐛 Fix n8n's behavior for empty response bodies (#2246)

* Fixed n8n's behavior for empty response bodies

* Correctly parsing empty bodies when expected output is a buffer
This commit is contained in:
Omar Ajoue 2021-09-28 00:50:37 +02:00 committed by GitHub
parent 389931da71
commit 62d1d69710
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 3 deletions

View file

@ -387,15 +387,31 @@ async function proxyRequestToAxios(
axios(axiosConfig)
.then((response) => {
if (configObject.resolveWithFullResponse === true) {
let body = response.data;
if (response.data === '') {
if (axiosConfig.responseType === 'arraybuffer') {
body = Buffer.alloc(0);
} else {
body = undefined;
}
}
resolve({
body: response.data,
body,
headers: response.headers,
statusCode: response.status,
statusMessage: response.statusText,
request: response.request,
});
} else {
resolve(response.data);
let body = response.data;
if (response.data === '') {
if (axiosConfig.responseType === 'arraybuffer') {
body = Buffer.alloc(0);
} else {
body = undefined;
}
}
resolve(body);
}
})
.catch((error) => {

View file

@ -896,7 +896,11 @@ export class WorkflowExecute {
// the `error` property.
for (const execution of nodeSuccessData!) {
for (const lineResult of execution) {
if (lineResult.json.$error !== undefined && lineResult.json.$json !== undefined) {
if (
lineResult.json !== undefined &&
lineResult.json.$error !== undefined &&
lineResult.json.$json !== undefined
) {
lineResult.error = lineResult.json.$error as NodeApiError | NodeOperationError;
lineResult.json = {
error: (lineResult.json.$error as NodeApiError | NodeOperationError).message,