为什么NodeJs服务器两次返回相同的数据?

时间:2018-06-25 17:24:03

标签: node.js

我目前正在学习NodeJ,因此我正在构建一个简单的NodeJs服务器,名为 server.js

const http = require('http');
const port = 3000;
const fs = require('fs');
const sourceFile = './client/src/account.json';
var data = []
const service = http.createServer(
(req, res) => {
    var receive = "";
    var result = "";
    req.on('data', (chunk)=>{ receive += chunk })
    req.on('end', () =>{
        data = fs.readFileSync(sourceFile, 'UTF8');
        result = JSON.stringify(data);

        var data_receive = receive;
        console.log(data)

        res.setHeader('Access-Control-Allow-Origin', '*');
        res.write(data);
        res.end()
    })
})
service.listen(port)

为什么每次我向服务器请求时, console.log 都会返回数据 2次。好像它在某处循环了。

这是我的json文件 account.json

[
    {
        "id":"account_1",
        "pass":"abc123",
        "name":"Account 1"
    }
]

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

从浏览器执行请求时,您将额外收到favicon.ico的请求。

为避免这些重复请求,请处理收藏夹图标。

if (req.url === '/favicon.ico') {
    res.writeHead(200, { 'Content-Type': 'image/x-icon' });
    console.log('favicon...');
    return res.end();
}

/* The rest of your code */