nodeで標準出力を拾う
console.logを標準出力だと思っていいかなぞですが、、、
スクリプトをevalで評価したときにconsole.logで出力している結果をキャプチャしたい場合はこの方法でできます。
var stdout = ""; console.log = function (d) { stdout = d; }; eval(CODE); //なにかのコードをここに記述 console.log = function (d) { process.stdout.write(d + '\n'); // これで戻したことになっていると思うたぶん }; console.log("eval中のconsole.logの出力が↑でなく↓に出てたら成功"); console.log(stdout);
動作として成功していますが、もしもっといい方法があったら教えて下さい。