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 相关文章推荐
js 使FORM表单的所有元素不可编辑的示例代码
Oct 17 Javascript
javascript中的原型链深入理解
Feb 24 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 Javascript
js实现简单的验证码
Dec 25 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
浅谈js中对象的使用
Aug 11 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
angular4 共享服务在多个组件中数据通信的示例
Mar 30 Javascript
bootstrap中的导航条实例代码详解
May 20 Javascript
解决vue 表格table列求和的问题
Nov 06 Javascript
微信小程序wxml列表渲染原理解析
Nov 27 Javascript
JavaScript中window和document用法详解
Jul 28 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
javascript学习网址备忘
2007/05/29 Javascript
JQuery实现自定义对话框的代码
2008/06/15 Javascript
js每次Title显示不同的名言
2008/09/25 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
python样条插值的实现代码
2018/12/17 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
python进度条显示之tqmd模块
2020/08/22 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
文员岗位职责范本
2014/03/08 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
学生会招新宣传语
2015/07/13 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android