readfile()回调调用两次

时间:2016-02-22 21:11:26

标签: javascript node.js

我是nodejs和callbacks的新手。

所以我有这个代码,当我通过HTTP启动对服务器的请求时我读取文件:

var http = require("http");
var fs = require("fs");

http.createServer(function(request,response){

    response.writeHead(200,{'Content-Type':'text/plain'});
    response.end("Server runnning...");

    fs.readFile('new.txt',function(err,data){
        if(err){
            console.error(err);
            return;
        }
        console.log(data.toString());
    });

}).listen(1234);

当我运行代码时,在控制台上显示/记录文件的内容两次。

lorem ipsum
lorem ipsum

文件内容为:

lorem ipsum

1 个答案:

答案 0 :(得分:7)

当您在浏览器的地址栏中键入URL时,通常会发出两个请求:

  • 您要查看的页面之一
  • 一个用于/favicon.ico

两个请求意味着对fs.readFile的两次调用,因为您为每个请求调用了它。