Node.js console.log()没有记录任何东西

chr*_*son 79 node.js

第一次尝试node.js. 设置节点,从nodejs.org站点设置示例应用程序.可以正常启动服务器,但console.log()实际上并没有记录任何内容.在Chrome,Firefox和Safari中试用了Javascript控制台 - 日志中没有任何内容.还检查了我的Mac上的控制台只是为了踢,没有任何东西.我错过了什么?

(这是有效的示例代码,但不记录任何内容.)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)

dav*_*vid 145

在node.js服务器console.log输出到终端窗口,而不是到浏览器的控制台窗口.

你是如何运行服务器的?您应该在启动后直接看到输出.

  • 如果可以的话,我会投下我自己的问题.无法相信我没有建立这种联系. (78认同)
  • @Brad不,不应该.并非所有节点程序都是Web服务器,即使它们仍然没有意义. (11认同)
  • @David - 我明白了......我知道通常服务器端的东西永远不会直接登录到客户端日志......但是node.js是javascript,这让人们在某种程度上认为客户端...并且从那时起日志记录方法与客户端名称"console.log"具有完全相同的名称,然后我认为*有些*人会认为它可能会记录到浏览器控制台. (4认同)
  • 每个人都盯着nodejs期望相同......控制台输出应该记录到浏览器的控制台以及终端. (3认同)

ato*_*ess 9

对于第一次使用nodejs的人来说,这可能会让人感到困惑.实际上可以将节点控制台输出传递给浏览器控制台.看看github上的connect-browser-logger

更新:正如Yan指出的那样,connect-browser-logger似乎已经不存在了.我会推荐NodeMonkey,如下所示:从Node.js输出到Chrome控制台

  • 而且,这可能走错了路.记录节点服务器激活浏览器控制台只是一种奇怪的做法.我可以想到零次真正有用的地方.说实话,尝试在控制台中从服务器登录到客户端听起来就像缺乏对如何构建软件的理解.我并不是说这只是一种关注概念的基本分离.仅仅因为他们都使用javascript并不意味着他们是相同的环境.那里有一个非常重要的区别. (5认同)

J D*_*ker 8

使用现代的 --inspect 节点,console.log 被捕获并转发到浏览器。

节点 --inspect myApp.js

或捕获早期日志记录 --inspect-brk 可用于在第一个模块的第一行停止程序...

节点 --inspect-brk myApp.js