06 - url包

2017-10-21  本文已影响0人  小草莓蹦蹦跳

var http = require('http');
var url = require('url');

var server = http.createServer(function (req, res) {

    /*在实际开发中,我们经常需要获取url请求的各个部分
     * 例如:hostname port pathname query
     * 所以我们需要借助对应的url包*/
    /*1.当我们需要让对应的url获取各个部分的时候,我们需要解析url,通过parse方法
     * 解析完成后返回一个结果,是一个字典,这个结果中包含了url的各个部分*/

    var results = url.parse(req.url);
    var hostName = results.hostname;
    var port = results.port;
    var pathName = results.pathname;
    var querys = results.query;
    console.log('hostname:'+hostName);
    console.log('port:'+port);
    console.log('pathname:'+pathName);
    console.log('query:'+querys);

    /*一般一次请求一定要有end方法返回
     * end方法可以不传递参数*/
    res.end();
});
server.listen(3000,'127.0.0.1');

案例二:有规则的获取请求的参数,让对应的请求的参数转化成一个对象。
{ uesername: 'wmx', age: '12' }

var http = require('http');
var url = require('url');
var server = http.createServer(function (req, res) {

    /* 默认情况下,有一个图标请求,我们不需要
     * 所以如果发现对应对应的请求是favicon.ico我们就停止程序*/
    
    if(req.url == '/favicon.ico'){
        return;
    }

    var results = url.parse(req.url,true);

    /*一般我们实际中,我们需要获取请求的参数,但是通过刚才的方式获取出来的参数是一个字符串
     * 我们如果想要获取对应的值,我们需要截取字符串,
     * 因为参数的长度一般我们无法确定长度,所以如果使用字符截取是比较困难
     * 我们可以让获取出出来的参数是一个字典,那么就可以通过key值获取对应的value值
     * 我们可以在解析对应的url地址的时候,加一个参数,这个参数是true
     */

    var querys = results.query;
    console.log(querys);

    /*一般一次请求一定要有end方法返回
     * end方法可以不传递参数*/
    res.end();
});
server.listen(3000,'127.0.0.1');
    if(req.url =='/favicon.ico'){
        return;
    }
上一篇 下一篇

猜你喜欢

热点阅读