Node.js 节点js控制台代码执行两次

Node.js 节点js控制台代码执行两次,node.js,Node.js,我正在执行以下简单的节点js代码 var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, {'Content-Type':'text/plain'}); res.end('Hello Node JS'); console.log('printing the message'); }).listen(8080); 执行命令node sample.js和 点

我正在执行以下简单的节点js代码

var http = require('http');

http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type':'text/plain'});
    res.end('Hello Node JS');
    console.log('printing the message');
}).listen(8080);
执行命令
node sample.js

点击浏览器上的url
http://localhost:8080/

我在命令提示符下两次收到控制台日志语句,即打印消息

有什么建议吗

编辑:

有趣的是,在检查了Firefox等其他浏览器后,IE在网络选项卡上没有favicon.ico请求,控制台消息只打印一次


据我所知,使用
express
模块处理典型web应用程序中的请求是更好的选择

检查浏览器开发人员控制台的网络区域,以了解正在发出的请求。我想你会看到两个:

  • GET/
  • GET/favicon.ico

您的HTTP服务器被编码为通过打印到控制台来响应所有请求;因此,如果您看到两个请求,您将收到两条控制台消息。

谢谢,您是对的,但是如何纠正这种行为?因为我只想在请求时执行一次console语句。您的浏览器正在发出两个请求。您的服务器会说“在每次请求时,无论路径如何,打印到控制台”。它正在做你让它做的事情。如果您想在某些情况下打印消息,而不是在其他情况下,则必须将该逻辑添加到服务器。