在节点js modu中执行子进程

2024-06-25 05:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个节点模块,我希望有一个名为cpuUtilization的函数,它调用python脚本并返回stdout。在

var sys = require('sys')
var exec = require('child_process').exec;

exports.cpuUtilization = function() {
    exec('./nodeprime/cpuUtilization.py', function (error, stdout, stderr) {
        return(JSON.parse(stdout));
    });
}

Tags: 模块函数脚本child节点varstdoutsys
1条回答
网友
1楼 · 发布于 2024-06-25 05:34:27

您确实从cpuUtilization返回一个结果,因为return语句不适用于该函数,而是应用于该函数内的回调。在

您需要将代码转换为异步代码,并使用回调函数返回结果:

exports.cpuUtilization = function (callback) {
  exec('./nodeprime/cpuUtilization.py', function (err, stdout, stderr) {
    if (err) return callback(err);
    callback(null, JSON.parse(stdout));
  });
};

回电是常识节点.js应该返回(至少)两个参数,其中第一个是错误实例,第二个包含实际数据。在

现在您可以使用您的功能,例如:

^{pr2}$

一般来说,我建议您熟悉高阶函数。在

相关问题 更多 >