Javascript 我无法在Nodejs上使用fs编写txt文件,有人能帮我吗?

Javascript 我无法在Nodejs上使用fs编写txt文件,有人能帮我吗?,javascript,node.js,mongodb,asynchronous,mongoose,Javascript,Node.js,Mongodb,Asynchronous,Mongoose,我试图在Nodejs上使用Fs编写一个txt文件,但是我得到了以下错误 调用和重试上次分配失败-进程内存不足 这是我正在使用的代码: UserPayment.find({} ,function (error , usersdata){ count=usersdata.length; usersdata.forEach(function(user){ sum+=user.Amount; fs.appendFile('unapec-appap.txt', 'D'+padd

我试图在Nodejs上使用Fs编写一个txt文件,但是我得到了以下错误

调用和重试上次分配失败-进程内存不足

这是我正在使用的代码:

UserPayment.find({} ,function (error , usersdata){
  count=usersdata.length;
  usersdata.forEach(function(user){
     sum+=user.Amount;
     fs.appendFile('unapec-appap.txt', 'D'+padding(user.Id,13)+user.IdType+padding(user.Account,15)+padding(user.Amount,20),function (err) {
        console.log(err);
     });
  });
  callback();
});

UserPayment是使用mongoose对mongolab数据库的调用

您可以
异步
逐行追加

var async = require("async");

UserPayment.find({} ,function (error , usersdata){
  count=usersdata.length;
  async.each(usersdata, function(user, cb){
    sum+=user.Amount;

    fs.appendFile('unapec-appap.txt', 'D'+padding(user.Id,13)+user.IdType+padding(user.Account,15) + padding(user.Amount,20), function (err) {
        cb();
    });
  }, function(err){
    callback();
  })
});

对于大数据,绝不应使用Array.forEach函数。另外,forEach函数会阻塞代码,并且在大多数情况下,它不会像预期的那样使用node,node主要基于非阻塞代码(异步代码)

您可以改为尝试“async”库,该库具有用于异步javascript编程的真正有用的函数

对于这种情况,请按如下方式使用Async.Each函数:

async.each(arrayofusers, appendfilesfunction, function(err){
  // if any of the saves produced an error, err would equal that error
});
对于您的特定问题:

var async = require('async');

UserPayment.find({} ,function (error , usersdata){
    count=usersdata.length;

    async.each(userdata, function(user,next){
        sum+=user.Amount;
        fs.appendFile('unapec-appap.txt', 'D'+padding(user.Id,13)+user.IdType+padding(user.Account,15)+padding(user.Amount,20)
                      ,function (err) {
                          if(err) return next(err); 
                          next();
         });
    }, function(err){
        if(err) console.log(err); // All errors will be handled here
    });


});

fs.appendFile
async