Express JS传递控制台日志以进行查看

时间:2013-03-06 10:26:56

标签: javascript node.js express

我想将console.log函数传递给Node Express中的视图,我尝试过:

res.render('index', {
"title" : 'My page',
"logger": console.log
}

我也试过这个

res.render('index', {
"title" : 'My page',
"logger": function () {
        console.log(arguments);
    }
}

但它总是空洞的,我错过了什么?

fwiw 这就是我在我的视图中输出它的方式

script
    log = #{logger};

对于那些想知道原因的人

我在移动时开发我的iPad 2(它已经越狱了),苹果凭借他们的智慧移除了最近版本中的开发工具栏,所以我遇到的警报很糟糕所以我想要一个临时的console.log到我的终端而不是。

[编辑]

如果我使用Socket I / O

我可以在后端订阅前端的“log”事件,并将这些事件和数据发送到控制台日志。

我没有把这个作为答案,因为我不认为这是最好的方法,但我认为这会有效。

1 个答案:

答案 0 :(得分:3)

如果您使用Express 3,我认为您可以在app.locals中公开console.log()函数。请参阅文档here

因此,在配置服务器的地方,您可能会有类似......

的内容
app.configure(function(){
  // some other configuration code

  app.locals.logger = function(arguments) {
    console.log(arguments);
  }

});

然后你可以在你的视图中访问这个...

script
  var log = #{logger};
  log("Hello, world!");

例如,在Chrome中,记录“Hello,world!”到网络检查员。