У меня странная проблема.
Я должен создать процесс в своем приложении node (внешний, разветвление невозможно). затем этот дочерний процесс отправляет вывод, который мне нужно вернуть и сохранить в БД. То, как я это делаю сейчас, заключается в том, чтобы повторять каждую строку моих данных (это JSON) и слушать, что приходит на стандартный вывод.
дочерний код:
var cntSent=0
for (var j = 0, lUF = uniqueFlyers.length; j < lUF; j++) {
var products = uniqueFlyers[j].products;
for (var k = 0, lP = products.length; k < lP; k++) {
var pstr = products[k].product;
this.echo(pstr);
cntSent+=1;
}
}
console.log(cntSent);
в конце cntSent=10000.
Сторона узла:
var cntReceived
proc.stdout.on('data', function(line) {
cntReceived+=1;
console.log(line);
});
proc.on('close', function (code) {
console.log(cntReceived);
});
в конце cntReceived = 3510.
Я вижу все свои выведенные данные, но они агрегируются и поступают большими кусками. Моя идея состоит в том, чтобы записать файл, а затем обработать файл с помощью узла, но это кажется избыточным, и я хотел бы начать обработку данных по мере их поступления. Любые предложения относительно наиболее точного и быстрого способа?
РЕДАКТИРОВАТЬ: как обычно, запись вопросов заставила меня задуматься. Я просто глуп, и было бы лучше буферизовать данные, а затем анализировать их? Это JSON, черт возьми!