[英]Cannot access child_process API
我有以下微型program.js
试图执行二进制文件:
var childProcess = require('child_process');
var path2Binary = '/home/myuser/myproj/bins/mybin';
var par = '--file=' + '/home/myuser/myproj/files/myfile.txt';
var ret = childProcess.execFileSync(path2Binary, [par]);
if (!ret) throw 'Error invoking process!';
var cnt = ret.stdout;
if (!cnt) throw 'Error retrieving output!';
console.log(cnt);
该程序尝试执行二进制文件,并向其传递参数(文件)。 然后将显示此过程的输出。
我尝试运行此node program.js
: node program.js
,但得到以下内容
var ret = childProcess.execFileSync(path2Binary, [par]);
^
TypeError: Object #<Object> has no method 'execFileSync'
at Object.<anonymous> (/home/myuser/myproj/program.js:6:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:929:3
我在CentOS上运行, 节点版本为v0.10.36 。
我尝试运行sudo yum install nodejs
,但是它告诉我它已经安装了,所以Node安装看起来还不错。
有什么问题?
如果我更换childProcess.execFileSync
与childProcess.spawn
我得到相同。
如果我将第一行更改为以下内容:
var exec = require('child_process').execFileSync;
然后我在exec
上得到了一个未定义的异常。
同步子进程中不支持在节点v0.10.36 - https://nodejs.org/docs/v0.10.36/api/child_process.html
看起来它可能是在0.12中引入的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.