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,您可以在程序中使用 shell,而不是淹没输出。

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

现在你已经bar暴露在你的外壳中了。

于 2013-04-29T03:52:22.983 回答