zoukankan      html  css  js  c++  java
  • Node.js HTTP模块

    章节


    内置的HTTP模块

    Node.js有一个名为HTTP的内置模块,支持超文本传输协议(HTTP)。

    要导入HTTP模块,使用require()方法:

    var http = require('http');
    

    作为Web服务器的Node.js

    HTTP模块可以用来创建HTTP服务器,侦听端口,并响应客户端。

    使用createServer()方法创建HTTP服务器:

    示例

    var http = require('http');
    
    //创建一个服务器对象:
    http.createServer(function (req, res) {
      res.write('Hello World!'); //给客户端写一个响应
      res.end(); //结束响应
    }).listen(8080); //服务器对象监听端口8080
    

    传递给http.createServer()方法的函数,将在端口8080被访问时执行。

    将上面的代码保存在一个名为“demo_http.js”的文件中,使用Node启动该文件:

    启动demo_http.js:

    C:UsersYour Name>node demo_http.js
    

    使用浏览器访问网址:http://localhost:8080,得到输出:

    Hello World!
    

    添加HTTP报头

    返回响应时,可以设置HTTP报头:

    示例

    var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
      res.write('Hello World!');
      res.end();
    }).listen(8080);
    

    res.writeHead()方法的第一个参数是状态代码,200表示一切正常,第二个参数是一个包含响应头的对象。

    读取查询字符串

    传递给http.createServer()的函数,有一个req参数,表示来自客户端的请求。

    这个参数是一个对象(http.IncomingMessage 对象),有一个名为“url”的属性,包含了域名后面的url部分:

    demo_http_url.js

    var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
      res.write(req.url);
      res.end();
    }).listen(8080);
    

    将上面的代码保存为“demo_http_url.js”文件,使用Node启动该文件:

    启动demo_http_url.js:

    G:projectqikegu-demo
    odejs>node demo_http_url.js
    

    当你打开下面的两个网址时,会看到不同结果:

    http://localhost:8080/summer

    输出:

    /summer
    

    http://localhost:8080/winter

    输出:

    /winter
    

    拆分查询字符串

    有一些内置模块可以拆分查询字符串,比如URL模块。

    示例

    拆分查询字符串:

    var http = require('http');
    var url = require('url');
    
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
      var q = url.parse(req.url, true).query;
      var txt = q.year + " " + q.month;
      res.end(txt);
    }).listen(8080);
    

    将上面的代码保存为“demo_querystring.js”文件,使用Node启动该文件:

    启动demo_querystring.js:

    G:projectqikegu-demo
    odejs>node demo_querystring.js
    

    浏览器访问网址:

    http://localhost:8080/?year=2019&month=July

    将输出:

    2019 July
    
  • 相关阅读:
    python两个dict相加
    rpm命令
    python logging模块不支持多进程写到一个log文件
    技术论坛地址收集
    visudo命令编辑修改/etc/sudoers配置文件
    健康是什么
    .net文件类型种种
    禁止脚本的运行
    静态页面的值传递
    datagrid数据导出到excel文件给客户端下载的几种方法 (转)
  • 原文地址:https://www.cnblogs.com/jinbuqi/p/11539902.html
Copyright © 2011-2022 走看看