3

node.js を使用して C++ でコンパイルされたファイルを実行し、このファイルから値を取得する必要があります。child_process.execFile を使用しようとしましたが、問題ありません。これは私が使用する機能です:

var exec = require('child_process');
Test.prototype.write = function (m) {
var wRet;
exec.execFile ('./mainCmd', ['-o', '\\!' + m + '.']
            function (error, stdout, stderr) {
              wRet = stdout;
              console.log ("wRet" + wRet);
              return wRet;
            });
}

問題は、「console.log」の wRet にファイル c++ からのテキスト me back が含まれていることです。「return」は未定義のままです。

手伝ってくれますか?

皆さん、ありがとうございました!

4

1 に答える 1

2

test()関数にコールバックを渡す必要があります。

var chproc = require('child_process');
Test.prototype.write = function(m, cb) {
  chproc.execFile(
    './mainCmd',
    ['-o', '\\!' + m + '.'],
    function(error, stdout, stderr) {
      if (error) return cb(error);
      cb(null, stdout);
    }
  );
};


// usage ...
var t = new Test();
t.write('foo', function(err, result) {
  if (err) throw err;
  // use `result`
});
于 2014-05-11T13:51:23.960 に答える