将评估文件的输出放入Nodejs中的另一个文件中

时间:2012-12-07 15:00:11

标签: node.js stream

在我的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.

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以写入另一个流(例如文件或standard error)来分隔您的输出,但我强烈建议不要对程序中的任何文件进行同步读取。

获取应用视图的另一种方法是利用repl,您可以在程序中使用shell,而不是充斥输出。

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

现在你的shell已经暴露了bar