-
-
Notifications
You must be signed in to change notification settings - Fork 33.4k
Closed
Labels
v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
Description
[Issue]
Here is the use case :
There are ~ 95000 txt files stored in the same folder
Each txt files contains array of objects, size=50.
I tried to aggregate all these txt's files's objects into an array.
There are 2037356 obj(s) in the Array, and each object stringified length reported to be no more than "2237" after checked each element's length by JSON.stringify(obj).length.
When I try to write them into a large json file as in code attached below. There are some errors returned. I wonder whether I shall avoid using writeFileSync and go for fs.append to prevent "RangeError: Invalid string length" in such case.
Please advise... thanks !
Note. I've increased heap to 8192 to prevent process out of memory error.
app.js:
var shell=require('shelljs/global')
var lineReader = require('line-reader');
var fs = require("fs");
var jsonfile = require('jsonfile')
var write2file = 'data.json'
var strings=[];
var objs=[];
// line ~=int range of 200~99000;
lineReader.eachLine('zips',function(line,last){
var zip='./info/'+line+'.txt';
console.log(zip);
var string= fs.readFileSync(zip).toString()
var arrOfObj = eval(string);
delete string;
for ( var i in arrOfObj) {
console.log(JSON.stringify(arrOfObj[i]).length)
objs.push(arrOfObj[i])
}
if(last){
console.log(objs.length)
jsonfile.writeFileSync(write2file, objs, function (err) {
console.error(err)
});
console.log("Done");
}
});
shjs app.js
/Users/raliclo/kroger/node_modules/jsonfile/index.js:108
let str = JSON.stringify(obj, options.replacer, spaces) + '\n'
^
RangeError: Invalid string length
at Object.stringify (native)
at Object.writeFileSync (/Users/raliclo/kroger/node_modules/jsonfile/index.js:108:18)
at /Users/raliclo/kroger/get.js:27:14
at /Users/raliclo/kroger/node_modules/line-reader/lib/line_reader.js:279:15
at getLine (/Users/raliclo/kroger/node_modules/line-reader/lib/line_reader.js:166:7)
at Object.nextLine (/Users/raliclo/kroger/node_modules/line-reader/lib/line_reader.js:175:11)
at Immediate.readNext [as _onImmediate] (/Users/raliclo/kroger/node_modules/line-reader/lib/line_reader.js:269:14)
at tryOnImmediate (timers.js:543:15)
at processImmediate [as _immediateCallback] (timers.js:523:5)
Metadata
Metadata
Assignees
Labels
v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.