一、 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 />')
}
});