在Node.js中,我使用child_process模块的exec命令来调用
Java中的一个算法,它将大量的文本返回给我,然后解析和使用.我能够捕获它,但是当它超过一定数量的行时,内容是截止的.
exec("sh target/bin/solver "+fields.dimx+" "+fields.dimy,function(error,stdout,stderr){ //do stuff with stdout }
我已经尝试使用setTimeouts和回调,但没有成功,但我确实觉得这是发生,因为我引用了我的代码中的stdout,才能被完全检索.我已经测试过,stdout是事实上数据丢失的第一次发生.这不是一个进一步的异步问题.我也在本地机器和Heroku上测试过,并且发生完全相同的问题,每次都以完全相同的行号截断.
关于什么可能有助于此的任何想法或建议?
解决方法
编辑:
我在我的电脑(windows)上尝试过dir / s,并且遇到了同样的问题(看起来像一个bug),这段代码解决了我的这个问题:
我在我的电脑(windows)上尝试过dir / s,并且遇到了同样的问题(看起来像一个bug),这段代码解决了我的这个问题:
var exec = require('child_process').exec; function my_exec(command,callback) { var proc = exec(command); var list = []; proc.stdout.setEncoding('utf8'); proc.stdout.on('data',function (chunk) { list.push(chunk); }); proc.stdout.on('end',function () { callback(list.join()); }); } my_exec('dir /s',function (stdout) { console.log(stdout); })