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 相关文章推荐
JS之Date对象和获取系统当前时间详解
Jan 13 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
thinkphp实现无限分类(使用递归)
Dec 19 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
Aug 01 Javascript
巧用weui.topTips验证数据的实例
Apr 17 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 Javascript
微信小程序身份证验证方法实现详解
Jun 28 Javascript
layui关闭层级、简单监听的实例
Sep 06 Javascript
利用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 PDO中文乱码解决办法
2009/07/20 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
VueJS全面解析
2016/11/10 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python pandas模块基础学习详解
2019/07/03 Python
python中调试或排错的五种方法示例
2019/09/12 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
英语专业毕业个人求职自荐信
2013/09/21 职场文书
学生会主席事迹材料
2014/01/28 职场文书
关于青春的演讲稿
2014/05/05 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
人与自然观后感
2015/06/16 职场文书
Python实现归一化算法详情
2022/03/18 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js