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 相关文章推荐
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
js 金额文本框实现代码
Feb 14 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
tangram.js库实现js类的方式实例分析
Jan 06 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 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错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
js获取域名的方法
2015/01/27 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python字符串对其居中显示的方法
2015/07/11 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
Python通过Pillow实现图片对比
2020/04/29 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
供货协议书范本
2014/04/22 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
高中物理教学反思
2016/02/19 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书