为什么node.js会多次显示相同的内容?

时间:2016-03-16 13:46:52

标签: javascript node.js

我有一个代码显示HTML文档(包括.jpg图像)和一个代码,用于创建新的.txt文件,将数据保存到其中并在控制台中显示。

但每次我使用谷歌浏览器运行此代码时,数据都会显示3次......

代码

var http = require('http');
var fs = require('fs');
var path = require('path');

http.createServer(function (request, response) {
//branje HTML datoteke
var file_path = '.' + request.url;
if (file_path == './')
    file_path = './func.html';

var extname = path.extname(file_path);
var contentType = 'text/html';
switch (extname) {     
    case '.jpg':
        contentType = 'image/jpg';
        break;
}
fs.readFile(file_path, function (error, content) {
    if (error) {
        if (error.code == 'ENOENT') {
            fs.readFile('./404.html', function (error, content) {
                response.writeHead(200, { 'Content-Type': contentType });
                response.end(content, 'utf-8');
            });
        }
        else {
            response.writeHead(500);
            response.end('Server error!: ' + error.code + ' ..\n');
            response.end();
        }
    }
    else {
        response.writeHead(200, { 'Content-Type': contentType });
        response.end(content, 'utf-8');
    }
});

 fs.writeFile("external-data.txt", "- TEXTFILE-CONTENT\n", function (err) {
    if (err) {
        return console.log(err);
    }
    console.log("Data saved!\n");
});

fs.readFile(__dirname + '//external-data.txt', function (err, data) {   
console.log(data.toString());
response.end(data);
});

结果

enter image description here

有什么建议吗?代码有什么问题,为什么它会多次显示相同的文本而不是一次?谢谢!

1 个答案:

答案 0 :(得分:2)

在Chrome中打开开发者工具。查看“网络”选项卡。提出请求。

您会看到Chrome发送多个请求。例如,对于/favicon.ico

每个请求都会触发您的代码。