最近在看BYVoid大神的《Node.js开发指南》,关于HTTP客户端那一块儿感觉理解不是很透彻…
文中说http.request会返回一个已经产生并正在进行中的HTTP请求,我的理解是请求头已经发送后,返回一个http.clientRequest对象,并调用回调函数,发送一个http.clientResponse,那么这个clientResponse监听的data事件具体是什么data事件呢?
我的理解是这个clientResponse会监听服务器返回的data,也会监听clientRequest写入请求体的data,不知道对不对。
根据书中的代码(如下)
var http = require('http');
var querystring = require('querystring');
var contents = querystring.stringify({
name: 'byvoid',
email: 'byvoid@byvoid.com',
address: 'Zijing 2#, Tsinghua University',
});
var options = {
host: 'www.byvoid.com',
path: '/application/node/post.php',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length' : contents.length
}
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log(data);
});
});
req.write(contents);
req.end();
打印出的值应该是既有服务器返回的值也有contents,可是我的返回只有如下的东西:
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.6.2 (Ubuntu)</center>
</body>
</html>
实在搞不懂… 求各位大牛帮助