一、 request url !=='/favicon.ico'。
今天研究了下node.js的http,看到一個奇怪的問題。代碼:
//加載http模塊
const htp=require('http');
const server=htp.createServer();
//request
server.on('request',function(req,res){
res.writeHead(200,'favicon.ico',{
'Content-Type':'text/html; charset=utf-8'
});
console.log('訪問1');
console.log('訪問2');
console.log('訪問3');
res.write('response正在執行中......'+'<br />');
res.end('response已結束'+'<br />')
});
//listen
server.listen(8888,'localhost');
console.log('server running at http://localhost:8888');

從結果來,理倫上console.log()只能會輸出三次訪問,但是為什么是六次?查了很多資料,最后查到因為“/favicon.ico”才重復執行多一次。要實現執行只執行一次,發須進行判斷。代碼:
//request
server.on('request',function(req,res){
res.writeHead(200,'favicon.ico',{
'Content-Type':'text/html; charset=utf-8'
});
if(req.url !== '/favicon.ico'){
console.log('訪問1');
console.log('訪問2');
console.log('訪問3');
res.write('response正在執行中......'+'<br />');
res.end('response已結束'+'<br />')
}
});
