Node.js:一个路由2次 request

node.js 和其他服务器端编程语言有很大区别,语言上的特性优点已经在前面分享过,这里就不说了.

与其他语言相比,还有一个区别,node.js 自身实现了一个服务器,而其他服务器端语言大部分要依赖Apach ,nginx ,IIS 等.

node.js 可以用几句代码轻松实现:

var http = require('http');        


var webServer = function (req, res){ 
		res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'}); 
		res.write('<html><body>'); 
		res.write('<h2>Hello World!</h2>'); 
		res.end('</body></html>'); 
};

var createWebServer=http.createServer(webServer);

createWebServer.listen(8000);
console.log('listen 8000');

上面我们就实现了,不论什么路由,服务器端都会返回 Hello World!

但是:如果你看控制台log 会发现每个url的请求,都有2次 request .

不信可以把 console.log(req);

放到 webServer 函数中间,你一定会发现每个请求都输出2次 request 信息.

原因是因为node.js 每个请求默认还有一个 对 favicon.ico 资源的请求.Express 貌似对此请求做了特殊处理.

我们可以这样避免 favicon.ico 资源的请求

var http = require('http');        

var webServer = function (req, res){ 
	if(req.url!='/favicon.ico'){
		res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'}); 
		res.write('<html><body>'); 
		res.write('<h2>Hello World!</h2>'); 
		res.end('</body></html>'); 
	}
};

var createWebServer=http.createServer(webServer);

createWebServer.listen(8000);
console.log('listen 8000');

 

转自:http://yijiebuyi.com/blog/ee3c1f200f2824e581900509d9c9d246.html

本文:Node.js:一个路由2次 request

Loading

Add a Comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.