I am using nodejs to create excel files on the server, when calls is greater then 20 heap memory error I got. I have use following technique as well but all in vain.
npm install -g increase-memory-limit increase-memory-limit
I have follow below link as well but still no luck. any suggestion ?
pageNumbers = [1,2,3,4,5,6,7,8,9,10,11....40]; //example
for (const pageNumbers of p) {
data = await getData(p,limit,organization_id,token, baseurl, sideFilter, null, client).then(response=>{
return response;
});
await readAndWrite(data);
}
let getData = (page,limit, organization_id,token, baseurl, sideFilter, worksheet, client) =>{
return new Promise((resolve, reject) => {
axios.post(baseurl+`/v2/get-export`, {
page:page,
organization_id:organization_id,
per_page:limit,
filter: "",
sorted:"",
...sideFilter
},{ headers: {"Authorization" : `Bearer ${token}`} }).then(function (response) {
let dataTemp = response.data.data.data.map((t,i)=>{
var parent = '';
var child = '';
if (t.teams_relation && t.teams_relation.length > 0) {
//business logic
}
return {
...t,
content : t.content ? convert(t.content) : '--',
parent_team : parent,
child_team : child,
reopened_comments_latest_content : t.reopened_comments_latest?t.reopened_comments_latest.content:'--',
solved_comments_latest_content : t.solved_comments_latest?t.solved_comments_latest.content:'--',
closed_comments_latest_content : t.closed_comments_latest?t.closed_comments_latest.content:'--',
requester_comments_latest_content : t.requester_comments_latest?t.requester_comments_latest.content:'--',
tags_impolode : t.tags?t.tags.length > 0 ? t.tags.join(", ") : '--':'--',
organization : t.organization?t.organization.name:'--',
comments : convert ( t.comments.map(function(c){return c.content;}).join(",") ),
user_name : t.user ? t.user.name : '',
user_email : t.user ? t.user.email : '',
escalated_at : t.escalated_at ? t.escalated_at : '',
region_Cluster : getDynamicFieldData(t.dynamicFieldsValue, "5f2ff7557a17f166076f2aa2"),
mawid_Facility_Name : getDynamicFieldData(t.dynamicFieldsValue, "5f3000d1486e94459b6531c2"),
hospital : getDynamicFieldData(t.dynamicFieldsValue, "609274609d16481196010c6d"),
}
});
resolve(dataTemp);
}).catch(function (error) {
reject(error);
});
});
}
let getDynamicFieldData = (data, id) => {
let df = data && data.length>0 ? data.find(d => d._id === id ):null;
if (df)
return df.value ;
else
return '--';
}
let readAndWrite = async (data) => {
if (fs.existsSync('./export.xlsx')) {
const newWorkbook = new excel.Workbook();
await newWorkbook.xlsx.readFile('export.xlsx').then(() => {
console.log("read");
})
.catch((err) => {
console.log("error ha yeh while reading", err);
});
const newworksheet = newWorkbook.getWorksheet('My Sheet');
// console.log('columns check ', typeof newworksheet.columns);
newworksheet.columns = columns;
await newworksheet.addRows(data);
await newWorkbook.xlsx.writeFile('export.xlsx').then(() => {
console.log("updated");
})
.catch((err) => {
console.log("error ha yeh while updating", err);
});
delete newworksheet;
delete newWorkbook;
} else {
const workbook1 = new excel.Workbook();
const worksheet1 = workbook1.addWorksheet("My Sheet");
worksheet1.columns = columns;
await worksheet1.addRows(data);
await workbook1.xlsx.writeFile('export.xlsx').then(() => {
console.log("saved");
})
.catch((err) => {
console.log("error ha yeh while writing", err);
});
delete workbook1;
delete worksheet1;
}
}
Error npm ERR! code ELIFECYCLE npm ERR! errno 137 npm ERR! wapp-permutas-backend@1.0.0 start:
node -max_old_space_size=20480 server.js
npm ERR! Exit status 137