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 相关文章推荐
Prototype Selector对象学习
Jul 23 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
js导出格式化的excel 实例方法
Jul 17 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
JavaScript Split()方法
Dec 18 Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
Sep 28 Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 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
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
Less 安装及基本用法
2018/05/05 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
Python中的推导式使用详解
2015/06/03 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
将python代码和注释分离的方法
2018/04/21 Python
python 把列表转化为字符串的方法
2018/10/23 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python多线程和多进程关系详解
2020/12/14 Python
python中封包建立过程实例
2021/02/18 Python
Python实现简单的2048小游戏
2021/03/01 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
装修五一活动策划案
2014/01/23 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
中介业务员岗位职责
2014/04/09 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书