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


Posted in Javascript onMay 02, 2017

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

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

Javascript 相关文章推荐
javascript tips提示框组件实现代码
Nov 19 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
Jul 04 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
javascript获取元素CSS样式代码示例
Nov 28 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
js同源策略详解
May 21 Javascript
详解JavaScript中的构造器Constructor模式
Jan 14 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 Javascript
vue实现同时设置多个倒计时
May 20 Vue.js
利用prop-types第三方库对组件的props中的变量进行类型检测
May 02 #Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
May 02 #Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 #Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 #Javascript
xmlplus组件设计系列之树(Tree)(9)
May 02 #Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 #Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 #Javascript
You might like
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
10个php函数实用却不常见
2015/10/13 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
python在不同层级目录import模块的方法
2016/01/31 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
python gdal安装与简单使用
2019/08/01 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
施工人员岗位职责
2013/12/12 职场文书
抵押贷款承诺书
2014/05/30 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
电频谱管理的原则是什么
2022/02/18 无线电
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL