Vous ne recevez pas de résultat en retour de cpuUtilization
parce que le return
ne s'applique pas à cette fonction, mais au callback à l'intérieur de cette fonction.
Vous devez transformer votre code en code asynchrone et renvoyer le résultat en utilisant également un callback :
exports.cpuUtilization = function (callback) {
exec('./nodeprime/cpuUtilization.py', function (err, stdout, stderr) {
if (err) return callback(err);
callback(null, JSON.parse(stdout));
});
};
Le bon sens veut que les callbacks de Node.js renvoient (au moins) deux paramètres, le premier étant une instance d'erreur et le second contenant les données réelles.
Vous pouvez maintenant utiliser votre fonction, par exemple :
cpuUtilization(function (err, data) {
// Do something with data ...
});
En général, je vous recommande de vous familiariser avec les fonctions d'ordre supérieur.