0

私の Nodejs スクリプトには、オンデマンドで呼び出される行があります。

eval(fs.readFileSync('eval.js')+'');

これは、「nodejs スクリプト」で何が起こっているか、その変数の内容を知りたい場合があるためです。

したがって、「eval.js」は通常次のように表されます。

console.dir(myVar);

問題は、コンソール出力に出力されることです。「親」スクリプトもコンソールにいくつかの情報を出力するため、コンソールは非常に高速に実行され、必要なものを取得できません。

ファイル「eval.js」のすべての出力を別のファイル「x.log」に入れる方法を探していました。

次のようなもの(「親」スクリプト内):

evalFileToLog("eval.js", "x.log");

または「eval.js」:

// something what will forward stdout to "x.log"
console.dir(abc);
// blah blah blah
// something that will restore stdout to it's normal behaviour, like it was before.

ご協力ありがとうございました!

4

1 に答える 1

0

出力を分離するために別のストリーム (ファイルや標準エラーなど) に書き込むことができますが、プログラム内のファイルの同期読み取りを行うことは強くお勧めしません。

アプリにビューを表示する別の方法は、replを活用することです。出力をフラッディングする代わりに、プログラムにシェルを含めることができます。

var repl = require('repl');
var bar = new MyApp();
relp.start({
  foo: bar
});

これbarで、シェルで公開されました。

于 2013-04-29T03:52:22.983 に答える