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 相关文章推荐
extjs两个tbar问题探讨
Aug 08 Javascript
深入探究使JavaScript动画流畅的一些方法
Jun 30 Javascript
JavaScript动态添加事件之事件委托
Jul 12 Javascript
详细讲解JavaScript中的this绑定
Oct 10 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
JS使用cookie实现只出现一次的广告代码效果
Apr 22 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
vue+vue-router转场动画的实例代码
Sep 01 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
js变量值传到php过程详解 将php解析成数据
Jun 26 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
ES6基础之字符串和函数的拓展详解
Aug 22 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
解析数组非数字键名引号的必要性
2013/08/09 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python dataframe NaN处理方式
2019/12/26 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
就业推荐表自我鉴定范文
2014/03/21 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
承诺书范本
2015/01/21 职场文书
教师节老师寄语
2015/05/28 职场文书
安全生产奖惩制度
2015/08/06 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android