所有编程语言都有执行系统命令的接口。 nodejs也不例外。 例如,删除shell命令将单个HTML文件转换为PDF文件。 如果是PHP的话很简单。
` prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf `
在PHP中,系统命令可以放在反单引号(`)中执行。 如果使用nodejs,则必须调用引用
varexec=require('child_process ' ).exec;
varcmd=' prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf ';
exec(cmd,function(error,stdout,stderr ) {
//获取指令执行的输出
);
我在这里使用的是
varspawn=require (' child _ process ' ).spawn;
varchild=spawn('prince ',[
'-v ',' builds/pdf/book.html ',
'-o ',' builds/pdf/book.pdf '
];
child.stdout.on('data ',function ) ) chunk )。
//output will be here in chunks
);
//orifyouwanttosendoutputelsewhere
child.stdout.pipe(dest;
如果希望nodejs运行文件而不是简单的命令,则必须使用spawn。 但是,第四个回调函数参数会增加,就像exec中的回调函数参数一样。
var execfile=require (' child _ process ' ).execfile;
execfile (文件、args、options、function ) error、stdout、stderr ) {
//command output is in stdout
);
所有上述方法都在nodejs上异步执行,但可能需要同时执行一些任务。 下面的代码示例使用同步方法调用系统命令来执行任务。
' use strict ';
常数
spawn=require(child_process ) ).spawnSync,
ls=spawn('ls ',[ '-lh ','/usr' ] );
console.log (stderr : $ (ls.stderr.tostring ) );
控制台. log (stdout : $ (ls.stdout.tostring ) ) };
constexecsync=require (' child _ process ' ).execsync;
varcmd=exec sync (prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf ' );