将大约 400MB 的数据写入文件时,节点会崩溃。
这是我的代码:
function logIntoFile (logObject){
let date = new Date();
let currentDate = date.getFullYear() + '-' + (((date.getMonth() + 1) < 10) ? '0' : '') + (date.getMonth() + 1) + '-' + ((date.getDate() < 10) ? '0' : '') + date.getDate();
let currentHour = ( (date.getHours() < 10 ? '0' : '') + date.getHours() );
let fileName = '/custom-logs/resultSet_' + currentDate + '_' + currentHour + '@' + logObject.dbName;
let logFile = fs.createWriteStream(__dirname + fileName, { flags: 'a' });
logFile.write(util.inspect(logObject, false, null) + '\n');
logFile.end();
}
// doQuery contains logic to connect to DB and run the query provided
doQuery(req, res, sql, false, function(err, result){
if (err) {
...
console.error(err);
res.send(err);
} else {
...
res.send(result);
...
logIntoFile({
timeStamp : getCurrentDateTime(),
dbName : req.session.iss.dbname,
userId : inuserid,
sql : sql,
error : err,
response : result
});
});
logObject 变量是从其他函数传递的对象,它包含 json 数据。
如果可写数据较小,它工作正常。
PS 我的服务器有 4 GB 的内存。
如何解决这个问题?任何帮助将不胜感激。
TIA
