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 相关文章推荐
javascript 操作文件 实现方法小结
Jul 02 Javascript
jquery1.4后 jqDrag 拖动 不可用
Feb 06 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
Jan 19 Javascript
Vue 过渡(动画)transition组件案例详解
Jan 22 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
说说如何使用Vuex进行状态管理(小结)
Apr 14 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
Oct 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取进制余数函数代码
2012/01/19 PHP
PHP自定义多进制的方法
2016/11/03 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
家长会主持词
2014/03/26 职场文书
检举信的格式及范文
2014/04/04 职场文书
读书月活动方案
2014/05/22 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
思想品德评语大全
2014/12/31 职场文书
爱心助学感谢信
2015/01/21 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
Pytest之测试命名规则的使用
2021/04/16 Python
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL