如何从meteor shell向控制台记录任何内容?

时间:2015-07-18 03:06:43

标签: javascript shell meteor console.log

This GitHub issue文件表明控制台没有输出任何内容到流星外壳。有没有解决方法?默认情况下,所有console.log()语句都将在应用程序的STDOUT中输出(不在shell中)。

我们想说我们要打印一个集合中的某些项目:

Meteor.users.find().forEach(function (user) { 
    if (...) console.log(user.emails[0].address;
});

那不会打印任何东西。以下是我尝试过的内容:

  1. process.stdout.write() - 不打印任何内容
  2. 创建一个字符串缓冲区,追加我们想要记录的内容,并对其进行评估。

    var output = '';
    Meteor.users.find().forEach(function (user) {
        if (...)
            output += user.emails[0].address + "\n"
    });
    output;
    

    这样可行,但\n按字面意思回显,而不是换行符。

  3. 评估函数中的表达式。可以预见,这不会打印任何东西。

1 个答案:

答案 0 :(得分:2)

我使用的一种解决方法是在后台运行应用程序,然后在同一窗口中运行shell。即。

meteor run &
meteor shell

这样,在应用程序控制台中输出的所有内容都会打印到您的窗口。不可否认,如果您只想将特定消息记录到shell中,这将无济于事,但如果您只想避免在多个窗口之间来回切换,这会有所帮助。