zoukankan      html  css  js  c++  java
  • Express之get,pos请求参数的获取

    Express的版本4.X

    Get


    query参数的获取

    url假设:http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool&job[st]=web

    路由的定义:

    router.get('/:name', function(req, res, next) {
    
    })
    

    1.获取?name=zhaoqize这样的参数

    req.query.name
    

    2.获取&job[st]=web这样的参数

    req.query.job.st
    

    3.获取?name=zhaoqize参数的另外一种写法(4.x版本中该方法已被废弃)

    req.param('name')
    

    4.获取所有参数

    JSON.stringify(req.query)
    

    具体代码:

    //http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool&job[st]=web
    //http://localhost:3000/users/zqzjs
    router.get('/:name', function(req, res, next) {
      //4.版本中已被废弃,不建议使用
      req.param('name')
      console.log(JSON.stringify(req.query) || '')
      //获取get请求参数
      var _html = "Params"+
      		      "<p><strong>req.params:</strong>"+(JSON.stringify(req.params) || '')+"</p>" +
      		      "<p><strong>req.params.name:</strong>"+(req.params.name || '')+"</p>" +
      			  "Query:" +
      			  "<p><strong>req.query:</strong>"+(JSON.stringify(req.query) || '')+"</p>" +
      			  "<p><strong>req.query.name:</strong>"+(req.query.name || '')+"</p>" +
      			  "<p><strong>req.query.word:</strong>"+(req.query.word || '')+"</p>"+
      			  "<p><strong>req.query.job.st:</strong>"+(req.query.job.st || '')+"</p>" +
      			  "<p><strong>req.param('name'):</strong>"+(req.param('name') || '')+"</p>" ;
      			  
    
      res.send(_html);
    });
    

    结果:

    [Get]
    Params
    req.params:{"name":"zqzjs"}
    
    req.params.name:zqzjs
    
    Query:
    req.query:{"name":"zhaoqize","word":"cool","job":{"st":"web"}}
    
    req.query.name:zhaoqize
    
    req.query.word:cool
    
    req.query.job.st:web
    
    req.param('name'):zqzjs
    

    Post


    post的数据获取

    Form Data 
     pName:zqz
     pWord:job
    

    1.获取需要的query参数

    req.body.pName
    

    具体代码:

    router.post('/postTest',function(req, res, next){
    	var _html = "[Post]" +
    			    "<p><strong>req.body:</strong>"+(JSON.stringify(req.body) || '')+"</p>" +
    			    "<p><strong>req.body.name:</strong>"+(req.body.pName || '')+"</p>" +
    				"<p><strong>req.body.name:</strong>"+(req.body.pWord || '')+"</p>";
    	res.send(_html);
    })
    

    结果:

    [Post]
    req.body:{"pName":"zqz","pWord":"job"}
    
    req.body.name:zqz
    
    req.body.name:job
    

    其他信息


    获取请求的头信息

    使用:req.header(field)

    //http://localhost:3000/users/requestInfo/get
    router.get('/requestInfo/get',function(req, res, next){
    	var _html = "";
    	_html += "[Accept] "+req.header('Accept')+"<br/>"
    	_html += "[Accept-Encoding] "+req.header('Accept-Encoding')+"<br/>"
    	_html += "[Accept-Language] "+req.header('Accept-Language')+"<br/>"
    	_html += "[Cache-Control] "+req.header('Cache-Control')+"<br/>"
    	_html += "[Connection] "+req.header('Connection')+"<br/>"
    	_html += "[Cookie] "+req.header('Cookie')+"<br/>"
    	_html += "[Host] "+req.header('Host')+"<br/>"
    	_html += "[If-None-Match] "+req.header('If-None-Match')+"<br/>"
    	_html += "[Upgrade-Insecure-Requests] "+req.header('Upgrade-Insecure-Requests')+"<br/>"
    	_html += "[User-Agent] "+req.header('User-Agent')+"<br/>"
    	res.send(_html);
    })
    
    //结果:
    [Accept] text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    [Accept-Encoding] gzip, deflate, sdch, br
    [Accept-Language] zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2
    [Cache-Control] max-age=0
    [Connection] keep-alive
    [Cookie] Hm_lvt_4f16d955a2236fc6ca7287644ecc9d79=1480576847,1481166685
    [Host] localhost:3000
    [If-None-Match] W/"23b-OjTNcZfCLTvw659CYGlLrA"
    [Upgrade-Insecure-Requests] 1
    [User-Agent] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
    

    route

    使用:req.route

    //http://localhost:3000/users/router/get
    router.get('/router/get',function(req, res, next){
    	res.send(req.route);
    })
    
    //结果:
    
    {
    path: "/router/get",
    stack: [
    {
    name: "<anonymous>",
    keys: [ ],
    regexp: { },
    method: "get"
    }
    ],
    methods: {
    get: true
    }
    }
    
    

    cookies

    使用:req.cookies

    //http://localhost:3000/users/cookies/get
    router.get('/cookies/get',function(req, res, next){
    	res.send(req.cookies);
    })
    
    //结果:
    {
    Hm_lvt_4f16d955a2236fc6ca7287644ecc9d79: "1480576847,1481166685"
    }
    

    hostname

    使用:req.hostname

    //http://localhost:3000/users/hostname/get
    router.get('/hostname/get',function(req, res, next){
    	res.send(req.hostname);
    })
    
    //结果:
    localhost
    

    ip

    使用:req.ip

    //http://localhost:3000/users/ip/get
    router.get('/ip/get',function(req, res, next){
    	res.send(req.ip);
    })
    
    //结果:
    ::1
    

    originalUrl

    使用:req.originalUrl

    //http://localhost:3000/users/originalUrl/get
    router.get('/originalUrl/get',function(req, res, next){
    	res.send(req.originalUrl);
    })
    
    //结果:
    /users/originalUrl/get
    

    protocol

    使用:req.protocol

    //http://localhost:3000/users/protocol/get
    router.get('/protocol/get',function(req, res, next){
    	res.send(req.protocol);
    })
    
    //结果:
    http
    

    secure

    使用:req.secure

    说明:用来判断协议是否安全,如果是https,返回的就是true

    //http://localhost:3000/users/secure/get
    router.get('/secure/get',function(req, res, next){
    	res.send(req.secure);
    })
    
    //结果:
    false
    

    xhr

    使用:req.xhr

    说明:判断是否是异步请求

    //http://localhost:3000/users/xhr/get
    router.get('/xhr/get',function(req, res, next){
    	res.send(req.xhr);
    })
    
    //结果:
    false
    

    拓展


    hHTTP请求头信息项描述

    测试源码

  • 相关阅读:
    [LeetCode 049] Group Anagrams
    [LeetCode 033] Search in Rotated Sorted Array
    [LeetCode 024] Swap Nodes in Pairs
    [LeetCode 016] 3Sum Closest
    [LeetCode 015] 3Sum
    [LeetCode 013] Roman to Integer
    [LeetCode 008] String to Integer (atoi)
    [LeetCode 007] Reverse Integer
    第四课:文件操作【解密】
    第三课:文件操作【逐步浅入,深入加解法】
  • 原文地址:https://www.cnblogs.com/zqzjs/p/6347086.html
Copyright © 2011-2022 走看看