繁体   English   中英

无法访问child_process API

[英]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.jsnode 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.execFileSyncchildProcess.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM