致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足在递归节点js代码中

时间:2013-08-08 11:42:18

标签: node.js

当我正在编写读取70mb文件行的递归程序时 line和processes。我正在使用递归来处理该行。这是我的代码

function readFile(response, postData){

    var instream = fs.createReadStream('filePath');
    var datmap={};
    var rl = readline.createInterface({
        input: instream,
        output: outstream,
        terminal: false
    });

    rl.on('line', function(line) {
        hirarchyFun(datmap,line); 
    });
}

hirarchyFun=function(map,line){
    var key;
    if(line.indexOf(",") != -1){
        key=line.substring(0,line.indexOf(","));
        var subLine=line.substring((key.length+1));
        var internMap=map[key];
        if(typeof internMap == 'undefined'){
            internMap={};
        }
        var value=hirarchyFun(internMap,subLine);
        map[key]=value;
        return map;
    }else{
        return line;
    }
}

当我正在阅读大约70mb的文件时给出错误

FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

但它的文件工作正常约700kb。 任何人都可以帮助解决这个问题吗?

0 个答案:

没有答案