• Node.js 实现第一个应用以及HTTP模块和URL模块应用


    /*
     实现一个应用,同时还实现了整个 HTTP 服务器。
    * */
    
    //1.引入http模块
    var http=require('http');
    
    //2.用http模块创建服务
    
        /*
         req获取url信息   (request)
         res 浏览器返回响应信息 (response)
         * */
    http.createServer(function(req,res){
         // 发送 HTTP 头部
        // HTTP 状态值: 200 : OK
        //设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
        res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
        res.write("你好 nodejs");
        res.write('我是第一个nodejs程序');
        res.end(); /*结束响应*/
    
    
    }).listen(8001);

    到该文件夹下,cmd命令运行:

    node hello.js

    浏览器显示:


    HTTP 模块、URL 模块

    Node.js 中,将很多的功能,划分为了一个个 module(模块)。 Node.js 中的很多功能都是通过模块实现。

    HTTP 模块的使用

    如第一个代码块,

    req.url URL 地址。所有的路由设计,都是通过 req.url 来实现的。

    我们比较关心的不是拿到 URL,而是识别这个 URL。

    url.parse() 解析 URL
    url.format(urlObject) //是上面 url.parse() 操作的逆向操作
    url.resolve(from, to) 添加或者替换地址

    案例:

    var http=require('http');
    var url=require('url');
    //2.用http模块创建服务
    /*
     req获取url信息   (request)
     res 浏览器返回响应信息 (response)
     * */
    http.createServer(function(req,res){
    //输入http://localhost:8001/news?aid=123   拿到aid
    // 输入http://localhost:8001/news?aid=123&cid=3   拿到aid 和cid
    //req.url  获取浏览器url输入的信息
        res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
        if(req.url!='/favicon.ico'){
            //http://localhost:8001/news?aid=123
            //console.log(req.url);  //返回  /news?aid=123
            var result=url.parse(req.url,true);  //第一个参数是地址    第二个参数是true的话表示把get传值转换成对象
            console.log('aid='+result.query.aid);  /*获取url的get传值*/
            console.log('cid='+result.query.cid);
        }
        res.write('你好 nodejs');
        res.end(); /*结束响应*/
    }).listen(8001);

    浏览器运行:

     

    控制台打印:

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    技术普及帖:你刚才在淘宝上买了一件东西
    centos 安装yum
    eclipse 中java 项目红色感叹号终极解决方案
    centos x8664位版本 想安装qq for linux
    甲骨文放弃对RHEL的ASMLib支持
    amoeba连接mysqlERROR 2006 (HY000): MySQL server has gone away
    让Fedora 15/CentOS 6显示详细启动信息,不显示进度条
    Oracle10g RAC安装手册
    如何控制oracle RAC 进行并行运算
    利用mysql的inet_aton()和inet_ntoa()函数存储IP地址
  • 原文地址:https://www.cnblogs.com/loaderman/p/11491254.html
Copyright © 2020-2023  润新知