草庐IT

process - 从 Node.js 中的子进程读取二进制数据

当尝试从ImageMagick子进程读取Node.js中的数据时,结果已损坏。一个简单的测试用例如下:varfs=require('fs');varexec=require('child_process').exec;varcmd='convert./test.jpg-';exec(cmd,{encoding:'binary',maxBuffer:5000*1024},function(error,stdout){fs.writeFileSync('test2.jpg',stdout);});我希望这相当于命令行convert./test.jpg->test2.jpg可以正确写入二进制

node.js - 在nodejs(windows)中显示正在运行的子进程的输出

例如,我正在使用以下代码(名为server.js)在Node中运行最基本的webServer(我使用的是windows):varhttp=require('http');http.createServer(function(req,res){res.writeHead(200,{'Content-Type':'text/plain'});res.end('HelloWorld\n');}).listen(1337,'127.0.0.1');console.log('Serverrunningathttp://127.0.0.1:1337/');我想将其作为子进程运行,并且通过以下方式成

node.js - 如何在 node.js 子进程模块中将消息和标准输出从子级传递给父级?

我遇到了子进程模块的问题,特别是child.spawn和child.fork。我依赖child_process.fork的文档,其中说:Thisisaspecialcaseofthechild_process.spawn()functionalityforspawningNode.jsprocesses.InadditiontohavingallthemethodsinanormalChildProcessinstance,thereturnedobjecthasacommunicationchannelbuilt-in.Seechild.send(message,[sendHandl

node.js - 为什么我不能在 windows 上的 nodejs 中杀死我的子进程?

exec=require('child_process').exec;child=exec('nodechild.js');child.stdout.pipe(process.stdout);child.kill('SIGKILL');functionwait(){setTimeout(wait,1000);child.kill('SIGKILL');}wait();上面的代码不起作用。child开始并将无限期地继续写入输出。我不知道如何杀死这个子进程。我在Windows7中运行Nodev0.11.9。我知道Windows不使用POSIX信号,但发送它“WM_QUIT”会导致异常。在标

node.js - 如何在 Node.js 中等待子进程完成

我正在通过Node.js中的子进程运行Python脚本,如下所示:require('child_process').exec('pythoncelulas.py',function(error,stdout,stderr){child.stdout.pipe(process.stdout);});但Node不会等待它完成。我如何才能等待该过程完成?是否可以通过在我从主脚本调用的模块中运行子进程来做到这一点? 最佳答案 为子进程使用exit事件。varchild=require('child_process').exec('pytho

node.js - 逐行解析生成的node.js子进程的输出

我有一个PhantomJS/CasperJS脚本,我使用process.spawn()在node.js脚本中运行它.由于CasperJS不支持require()ing模块,我正在尝试将CasperJS中的命令打印到stdout然后使用spawn.stdout.on('data',function(data){});从我的node.js脚本中读取它们为了执行诸如将对象添加到redis/mongoose之类的事情(很复杂,是的,但似乎比为此设置Web服务更简单......)CasperJS脚本执行一系列命令并创建例如20个需要的屏幕截图要添加到我的数据库中。但是,我不知道如何破解data变

node.js - 如何从nodejs子进程(在windows和linuxish中)获取cwd(当前工作目录)

我正在尝试通过nodejs运行一个脚本:cd..doSomethingThere[]但是,为此,我需要执行多个子进程并在这些进程之间传递环境状态。我想做的是:varexec=require('child_process').exec;varchild1=exec('cd..',function(error,stdout,stderr){varchild2=exec('cd..',child1.environment,function(error,stdout,stderr){});});或至少:varexec=require('child_process').exec;varchild

node.js - Nodejs子进程: write to stdin from an already initialised process

我正在尝试使用Node的child_process生成一个外部进程phantomjs,然后在初始化后向该进程发送信息,这可能吗?我有以下代码:varspawn=require('child_process').spawn,child=spawn('phantomjs');child.stdin.setEncoding='utf-8';child.stdout.pipe(process.stdout);child.stdin.write("console.log('HellofromPhantomJS')");但我在标准输出上得到的唯一信息是phantomjs控制台的初始提示。phant

Node.js 生成子进程并实时获取终端输出

我有一个脚本,它输出“hi”,休眠一秒钟,输出“hi”,休眠1秒,依此类推。现在我想我可以用这个模型解决这个问题。varspawn=require('child_process').spawn,temp=spawn('PATHTOSCRIPTWITHTHEABOVEBEHAVIOUR');temp.stdout.pipe(process.stdout);现在的问题是需要完成任务才能显示输出。据我了解,这是因为新生成的进程具有执行控制权。显然node.js不支持线程所以有什么解决方案吗?我的想法是可能运行两个实例,第一个用于创建任务的特定目的,并让它通过管道将输出传递给第二个实例的进程,

node.js 子进程 - spawn 和 fork 之间的区别

这似乎是一个基本问题,但我找不到任何文档:fork和生成node.js进程有什么区别?我已经读过fork是产生的一种特殊情况,但是使用它们中的每一个有什么不同的用例/反响? 最佳答案 Spawn是一个旨在运行系统命令的命令。当你运行spawn时,你向它发送一个系统命令,该命令将在它自己的进程上运行,但不会在你的Node进程中执行任何进一步的代码。您可以为您生成的进程添加监听器,以允许您的代码与生成的进程交互,但不会创建新的V8实例(当然,除非您的命令是另一个Node命令,但在这种情况下您应该使用fork!)和处理器上只有一个Node