0

将大约 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

4

0 回答 0