Tag: stdout

检索标准输出到variables

我试图在下一个代码中运行subprocess: run = function (cmd, callback) { var spawn = require('child_process').spawn; var command = spawn(cmd); var result = ''; command.stdout.on('data', function (data) { result += data.toString(); }); command.on('exit', function () { callback(result); }); } execQuery = function (cmd) { var result = { errnum: 0, error: 'No errors.', body: '' }; run(cmd, function (message) { […]

Node.js的; 写入文件时,stdout中的彩色文本被转换为对象符号

奇怪的是,当我从一个产生彩色文本的节点应用程序中保存stdout时,彩色文本被转换为一个对象。 看起来ascii颜色代码被解释为某种数组,然后以对象符号forms写入文件。 这是stdout发送到terminal时输出的样子。 这是输出到一个文件后看起来像什么,然后用cat命令查看文件。 有没有人知道这里发生了什么? 编辑:这里是CLI脚本源,所以你可以看到如何生成文本。 编辑2:这里是电子模块提供的代码,用来给文本上色: Object.defineProperty(String.prototype, color, { get: function () { if (noColors || !self.opts.useColors) return this; return '\033[' + colors[color] + 'm' + this + '\033[0m'; } , configurable: true }); 编辑3:我向Electron提交了一个pull请求来解决这个问题,从0.4.1版本开始合并。 我build议,如果你想build立一个CLI。

Nodejs总是不能完全捕获subprocess的stdout数据,除非subprocessfllush(stdout)

我使用nodejs来捕获它的subprocess的stdout数据,但总是捕获subprocess的stdout数据的前一部分。 当我添加fllush(stdout)时 ,它工作正常。 但是我不知道为什么,也不想添加flush(stdout)。 这是我的代码: var tail_child = spawn(exefile, [arg1, arg2, arg3]); tail_child.stdin.write('msg\n'); tail_child.stdout.on('data', function(data) { console.log(data); }); child_process.c printf("data\n"); 需要你的帮助! 非常感谢你!

Node.js的stdout编码问题

我做了一个快速的Ajax驱动的页面来粘贴一些文本并运行yuicompressor。 输出工作的很好,但是,当我发送标准输出回到我的网页,我有关于在<字符切断数据的问题。 例如,当我运行这个压缩机时: function Enum(values){ for( var i = 0; i < values.length; ++i ){ this[values[i]] = i; } return this; } 我得到一个压缩版本,没问题。 现在,当我把这个发送到我的页面这样的: exec(command, function(err, stdout, stderr) { console.log(stdout); res.writeHead(200, {'content-type': 'text/plain'}); //res.write(decodeURIComponent(escape(stdout))); //res.write(qs.escape(stdout)); res.write(stdout); res.end('\n'); }); 这总是导致数据发送被切断在<导致: function Enum(a){for(var b=0;b console.log(stdout)完美显示,所以直到它发送到客户端,它被切断。 当我尝试编码时,我能够将整个输出都转到我的页面,但是在前端解码会导致同样的问题。 这是ajax调用: if(ready) { $.ajax('/get' + args + '/', { type: 'GET', […]

NodeJS错误'TypeError:无法读取未定义的'stdout'

我正在为happyfuntimes apibuild设。 我已经广泛使用它,但我突然收到一个错误,停止一切工作。 该错误的日志是: /Applications/HappyFunTimes.app/Contents/hft/lib/computername.js:38 computerName = res.stdout.split()[0]; ^ TypeError: Cannot read property 'stdout' of undefined at /Applications/HappyFunTimes.app/Contents/hft/lib/computername.js:38:23 at ChildProcess.<anonymous> (/Applications/HappyFunTimes.app/Contents/hft/lib/utils.js:67:7) at emitTwo (events.js:87:13) at ChildProcess.emit (events.js:172:7) at maybeClose (internal/child_process.js:818:16) at Socket.<anonymous> (internal/child_process.js:319:11) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at Pipe._onclose (net.js:469:12) 我知道问题不在于代码,因为它在其他地方工作。我已经尝试了多次卸载并重新安装happyfuntimes,node,npm和bower。 我清理了节点和npm上的caching。 我已经尝试了多个不同版本的节点和npm。 我正在运行Mac 10.9.5。 唯一的相关错误,我可以find这个消息处理咕噜,我已经尝试了在该范围内的各种解决scheme。 如果任何人都可以指出我的错误是什么,我会感激不尽! 谢谢阅读!

从标准input读取时,Node.js无法读取pythonsubprocess标准输出

我有一个node.js脚本启动一个pythonsubprocess并读取它的stdout。 只要Python进程不尝试从标准input读取,它就会工作。 然后父进程没有从孩子得到任何东西。 我在这里有node.js脚本和两个pythontesting用例:(这两个示例工作,如果你评论尝试从标准input读取的行) 第一个孩子: import sys print('before') for line in sys.stdin: print(line) print('after') 第二个孩子: import sys print('before') while True: line = sys.stdin.readline() if line != '': print(line) else: break print('after') 家长: const spawn = require('child_process').spawn; let client = spawn('python', ['test1.py'], {cwd: '/tmp'}); client.stdout.on('data', (data) => { console.log(data.toString()); }); client.stderr.on('data', (data) => { console.log(data.toString()); }); […]

如何使用node.js和gm检查损坏的jpg图像?

我想检查损坏的JPEG图像,到目前为止,直接在命令行我可以使用identify image.jpg输出: image.jpg JPEG 1920×1200 1920×1200+0+0 8-bit sRGB 65.5KB 0.000u 0:00.009 identify: Premature end of JPEG file `image.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. identify: Corrupt JPEG data: premature end of data segment `image.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. 或gm identify image.jpg输出: image.jpg JPEG 1920×1200+0+0 DirectClass 8-bit 64.0Ki 0.000u 0:01 gm identify: Corrupt JPEG data: premature end of data segment (image.jpg). gm […]

Bash + Node.js + stdin / stdoutredirect:错误“不是tty”

此问题可能是Windows特定的。 我没有在Linux或Mac上testing过。 我用: Windows 7 64位 Node.js 8.1.3 Git for Windows 2.8.1,包括GNU bash,版本4.3.42(5) – 发布 node my-cli.js > foo.txt :错误output is not a tty node my-cli.js < foo.txt :错误input is not a tty 。

使用ffmpeg – nodejs区分错误和标准terminal日志

我在节点js中使用ffmpeg 。 标准的terminal输出和错误似乎被发送到标准输出,所以我不知道如何区分错误和成功…这是我的代码: var convertToMp3 = function(filePath) { var ffmpeg = child_process.spawn('ffmpeg',['-i', filePath, '-y', 'output.mp3']); var err = ''; ffmpeg.stderr .on('data', function(c) { err += c; }) .on('end', function() { console.log('stderr:', err); }); var d = ''; ffmpeg.stdout .on('data', function(c){d +=c;}) .on('end', function(){ console.log('stdout', d); }); } 如果转换成功或失败,则标准输出为空,并且标准错误包含如果我在terminal中运行相应的命令

只将stdoutredirect到/ dev / null

我还没有掌握奇怪的shell stdioredirect的东西呢。 我想运行npm install但redirectstdout,所以我不必看到所有这一切。 (我还想在terminal捕捉stderr,我只是不想看到stdout)。 npm install -D suman 1> /dev/null 这似乎并不奏效。 什么是正确的语法(可能,为什么)用于只redirect到/dev/null stdout?