日期:2014-05-16  浏览次数:20331 次

Node.js的HTTP与事件初步介绍&如何查看API(入门篇)

Node.js的HTTP与事件初步介绍&如何查看API(入门篇)

接着第一篇来说,当然,同样约定下面简称为Node(个人认为比较标准的说法),标题用node.js主要是为了方便阅读。同样,大牛可以略过这篇文章啦!现在,主要说3个问题:(1)接着第一篇介绍完Http其他部分(2)事件模型的介绍(3)如何查看API 文档.
首先感谢下网友hellostory,修改下上一篇的程序的bug。
?
一、修改前一篇的程序bug ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
二、接着说HTTP其他部分 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
因为HTTP是Node的核心模块,因此,接着上一篇,把HTTP模块讲完。
1、 http.ClientRequest类。
可以看到,该类具有5个事件(实现接口的事件,暂且不说)、6个方法。那么我们从字面意思就可以看出是“客户端请求”的意思。但是我们需要了解以下几点:
该类的实例是在http.request中创建并返回的,也就是说,var req = http.request(options, function(res){});req就是该类对象。那么如何来使用这些方法和事件呢,来一段程序,就明白了。
  • Class: http.ClientRequest
    • Event 'response'
    • Event: 'socket'
    • Event: 'connect'
    • Event: 'upgrade'
    • Event: 'continue'
    • request.write(chunk, [encoding])
    • request.end([data], [encoding])
    • request.abort()
    • request.setTimeout(timeout, [callback])
    • request.setNoDelay([noDelay])
    • request.setSocketKeepAlive([enable], [initialDelay])
首先,发送一个请求,请求数据:
var http=require('http');
var options = {
    hostname: 'translate.google.cn',
    port: 80,
    path: '/',
    method: 'POST'
};

var req=http.request(options,function(response){
    var str='';
    response.on('data',function(data){
        str=str+data;
    });
    response.on('end',function(){
        console.log(str);
    });
});

req.on('error', func