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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
javascript:void(0)的真正含义实例分析
Aug 20 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
Mar 08 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
Jquery焦点图实例代码
Nov 25 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
js截取字符串功能的实现方法
Sep 27 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
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
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
JavaScript的Function详细
2006/11/14 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
python中global用法实例分析
2015/04/30 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
大学生家政服务项目创业计划书
2014/01/30 职场文书
九年级语文教学反思
2014/02/04 职场文书
员工入职担保书范文
2014/04/01 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
2016年情人节问候语
2015/11/11 职场文书
大队委员竞选稿
2015/11/20 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏