javascript – Node.js的stdout child_process exec被缩短

前端之家收集整理的这篇文章主要介绍了javascript – Node.js的stdout child_process exec被缩短前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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),这段代码解决了我的这个问题:
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);
})

猜你在找的JavaScript相关文章