其他链接:
以下内容全部源于: 《Node.js权威指南》
一、获取客户端请求信息
1.1 http.IncomingMessage
http.IncomingMessage
对象:用于读取客户端请求流中的数据 【createServer
中第一个参数 -request
】
- 当从客户端请求流中读取到新的数据时触发
data
事件- 当读取完客户端请求流中的数据时触发
end
事件
http.IncomingMessage
对象拥有的一些属性:
method
:字符串,客户端向服务器端发送请求时使用的方法,POST
url
:字符串,客户端发送请求时所使用的URL
。【常用来判断客户端请求的页面及需要执行的处理。】headers
:客户端发送的请求头对象,存放客户端发送的所有请求头信息,包括cookie
以及浏览器的各种信息
httpVersion
:字符串,客户端发送的HTTP
版本trailers
:客户端发送的trailer
对象。它存放了客户端附加的一些HTTP
头信息。该对象被包含在客户端发送的请求数据之后,因此只有当http.ImcomingMessage
对象的end
事件触发之后才能读取到trailer
对象中的信息socket
:服务器端用于监听客户端请求的socket
端口对象
1.2 实例 - 在文件中保存客户端请求信息
var http = require('http');
var fs = require('fs');
var server = http.createServer(function (req, res) {
if (req.url !== '/favicon.ico') {
var out = fs.createWriteStream('./request.log');
out.write('客户端请求所用方法为:' + req.method + '\r\n');
out.write('客户端请求所用url字符串为:' + req.url + '\r\n');
out.write('客户端请求头对象为:' + JSON.stringify(req.headers) + '\r\n');
out.write('客户端请求所用 HTTP 版本为:' + req.httpVersion + '\r\n');
}
});
server.listen(8080, "127.0.0.1", function () {
console.log('开始监听');
});
- 运行过程
1.3 req 的 data 事件
req
的data
事件可以接收到前端传来的数据
req.on('data', function(data) {
// ...
})