node.js express中app.param的用法详解


Posted in Javascript onJuly 16, 2017

前言

大家应该都知道,express中app.param方法用于验证参数,我个人把它理解成类似对参数过滤的一个中间件。在这里我来结合几个demo,加深大家对app.param方法的理解。下面话不多说,来一起通过示例代码看看详细的介绍吧。

demo1:

var express = require('express');
var app = express();
app.param(function(param, option) {
 return function (req, res, next, val) {
 if (val == option) {
  next(); //
 }
 else {
  res.sendStatus(404);
 }
 }
});
app.param('id', 1337);
app.get('/user/:id', function (req, res) {
 res.send('参数通过检验');
});

app.listen(3000, function () {
 console.log('Ready');
});

在上述例子中,只有在地址栏输入http://localhost:3000/user/1337的情况下,页面才会显示“参数通过检验”。

也就是说app.params()可以对地址栏参数进行过滤,针对不同参数作出不同响应。

但是上述代码,在运行的时候会有这样的提示:

express deprecated router.param(fn):Refactor to use path params

demo1中示例的写法并不推荐,改成如下写法,提示就会消失:

demo2:

var express = require('express');
 var app = express();
 app.param('id', function (req, res, next, id) {
 if(req.params.id==1337){
  next();
 }
 else{
  res.sendStatus(404);
 }
 });
 app.param('id', 1337);
 app.get('/user/:id', function (req, res) {
  res.send('参数通过检验');
 });
 
 app.listen(3000, function () {
  console.log('Ready');
 });

tip:通常app.params结合正则表达式使用更强大。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
firefox中用javascript实现鼠标位置的定位
Jun 17 Javascript
Javascript类库的顶层对象名用户体验分析
Oct 24 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
Mar 24 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
js和jquery中获取非行间样式
May 05 jQuery
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
Node.js 中使用 async 函数的方法
Nov 20 Javascript
微信小程序实现滑动切换自定义页码的方法分析
Dec 29 Javascript
Node.js中流(stream)的使用方法示例
Jul 16 #Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 #Javascript
Vue Spa切换页面时更改标题的实例代码
Jul 15 #Javascript
Vue应用部署到服务器的正确方式
Jul 15 #Javascript
js+html5实现侧滑页面效果
Jul 15 #Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 #Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 #Javascript
You might like
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
php实现mysql封装类示例
2014/05/07 PHP
destoon官方标签大全
2014/06/20 PHP
PHP文件操作方法汇总
2015/07/01 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
Python提取网页中超链接的方法
2016/09/18 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Form表单及django的form表单的补充
2019/07/25 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
护士自我鉴定怎么写
2014/02/07 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书