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查找父节点的简单方法
Jun 28 Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
node.js博客项目开发手记
Mar 16 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
May 03 Javascript
搭建vue开发环境
Jul 19 Javascript
Vue核心概念Action的总结
Jan 18 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
Jul 05 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
js的with语句使用方法
2007/09/21 Javascript
js 省地市级联选择
2010/02/07 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
详解Python的Django框架中的模版继承
2015/07/16 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
培训主管的职业生涯规划
2014/03/06 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
医院营销工作计划
2015/01/16 职场文书
廉洁自律证明
2015/06/24 职场文书