Express之get,pos请求参数的获取

 更新时间:2017年05月02日 17:11:36   作者:leslie·Zhao  
本篇文章主要介绍了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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • windows使用nvm对node进行版本管理切换的完整步骤

    windows使用nvm对node进行版本管理切换的完整步骤

    这篇文章主要介绍了windows使用nvm对node进行版本管理切换的完整步骤,在使用之前各位务必卸载掉自己安装过的nvm或者node版本包括环境变量之类的,要保证自己的电脑完全没有node环境,需要的朋友可以参考下
    2024-03-03
  • 基于Alpine Linux构建前端node-web镜像步骤详解

    基于Alpine Linux构建前端node-web镜像步骤详解

    这篇文章主要为大家介绍了基于Alpine Linux构建前端node-web镜像步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • nodejs实现截取上传视频中一帧作为预览图片

    nodejs实现截取上传视频中一帧作为预览图片

    这篇文章主要为大家详细介绍了nodejs实现截取上传视频中一帧作为预览图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Nodejs对postgresql基本操作的封装方法

    Nodejs对postgresql基本操作的封装方法

    今天小编就为大家分享一篇Nodejs对postgresql基本操作的封装方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • nodejs 快速入门之事件循环

    nodejs 快速入门之事件循环

    这篇文章主要介绍了nodejs 快速入门之事件循环的相关资料,需要的朋友可以参考下
    2023-05-05
  • NodeJS学习笔记之FS文件模块

    NodeJS学习笔记之FS文件模块

    在看nodejs介绍的过程中,nodejs对自己的异步I/O是重点突出的说明的。在fs模块中,nodejs提供了异步和同步两种读写方式
    2015-01-01
  • Node.js开源应用框架HapiJS介绍

    Node.js开源应用框架HapiJS介绍

    这篇文章主要介绍了Node.js开源应用框架HapiJS介绍,本文讲解了HapiJS介绍、HapiJS安装和项目配置和开发实例等内容,需要的朋友可以参考下
    2015-01-01
  • nodejs检测因特网是否断开的解决方案

    nodejs检测因特网是否断开的解决方案

    这篇文章主要给大家介绍了关于nodejs如何检测因特网是否断开的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用nodejs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 从零学习node.js之搭建http服务器(二)

    从零学习node.js之搭建http服务器(二)

    NodeJs是什么我想大家已经很了解了,作为一个前端工程师,想要不断提升自己,一般都会接触到后端服务器的技术,NodeJs给我们提供了一个学习成本相对较低的捷径可走。下面这篇文章主要介绍了node.js中搭建http服务器的相关资料,需要的朋友可以参考下。
    2017-02-02
  • 解决node.js安装包失败的几种方法

    解决node.js安装包失败的几种方法

    nodejs安装包失败的原因可能有很多,下面这篇文章给大家整理三种方法来解决,大家可以试一试或许可以解决你的问题,下面来一起看一看。
    2016-09-09

最新评论