NodeJs的核心模块

全局对象

Node.js中全局对象是global,所有全局变量(除了global)都是global对象的属性。
如console、process。

全局变量

ECMAScript定义,满足以下条件的变量是全局变量。
1.在最外层定义的变量
2.全局对象的属性
3.隐式定义的变量(未定义直接赋值的变量)
在node.js中不可能在最外层定义变量。
永远使用var定义变量,以免引入全局变量。

process

global对象的属性。用于描述当前Node.js进程状态对象,提供了一个与操作系统的简单接口。

Http模块

http.Server是一个基于事件的HTTP服务器,所有的请求都被封装为独立的事件,继承自EventEmitter,提供了以下事件

  • request
  • connection:粒度大于request,当TCP连接建立时,该事件被触发
  • close
  • 最常用的就是request了。因此http提供了一个捷径。
    http.createServer,功能是创建一个HTTP服务器并且将requestListener作为request事件的监听函数。

    var http=require("http");
    var server=new http.Server();
    server.on('request',function(req,res){
        res.writeHead(200,{'Content-Type':'text/html'});
        res.write({'<h1>Node.js</h1>'});
        res.end('<p>Hello world</p>'});
    });
    server.listen(3000);

    http.ServerReqest

    http.ServerRequest是HTTP请求的信息,一般是http.Server的request事件发送,作为第一个参数传递。
    http.ServerReqest提供了3个事件用于控制请求体传输。

    data:当请求数据到来时,该事件被触发。该事件提供一个参数chunk,表示接收到的数据。如果该事件没有被监听,那么请求体会被抛弃。该事件可能会被调用多次。
    
    
    end:当请求体数据传输完成,该事件被触发。此后不会有数据到来。
    close:用户当前请求结束,该事件被触发。不同于end,如果用户强制终止了传输,也还是调用close。
    

    获取get请求内容

    var http=require("http");
    var url=require('url');
    var util=require('util');
    
    
    http.createServer(function(req,res){
        res.writeHead(200,{'Content-Type':'text/html'});
        res.end(util.inspect(url.parse(req.url,true)));
    }).listen(3000);

    浏览器返回

    {
    search:'?name=byvoid&email=byvoid@byvoid.com',
    query:{name:"byvoid",email:'byvoid@byvoid.com'}.
    pathname:"/user",
    path:'/user?name=byvoid&email=byvoid@byvoid.com',
    href:'/user?name=byvoid&email=byvoid@byvoid.com',
    }

    通过url.parse原始的path会被解析为一个对象,其中query就是我们所谓GET请求的内容,而路径是pathname

    获取POST请求内容

    var http=require("http");
    var querystring=require('querystring');
    var util=require('util');
    
    
    http.createServer(function(req,res){
        var post='';
    
        res.on('data',function(chunk){
            post+=chunk;
        });
        res.on('end',function(){
            post=querystring.parse(post);
            res.end(util.inspect(post));
        });
    }).listen(3000);

    http.ServerResponse

    http.ServerResponse是返回给客户端的信息,决定了用户最终能看到的结果。
    它也是由http.Server的request事件发送的,作为第二个参数传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值