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 事件参考手册
Dec 24 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 Javascript
详解iframe与frame的区别
Jan 13 Javascript
基于js实现checkbox批量选中操作
Nov 22 Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
利用vue + element实现表格分页和前端搜索的方法
Dec 25 Javascript
Vue 组件传值几种常用方法【总结】
May 28 Javascript
浅谈angularJS2中的界面跳转方法
Aug 31 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
Apr 08 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
做网页的一些技巧(续)
2007/02/01 Javascript
JTrackBar水平拖动效果
2007/07/15 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
django celery redis使用具体实践
2019/04/08 Python
Numpy的简单用法小结
2019/08/28 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
最新会计专业求职信范文
2014/01/28 职场文书
中文教师求职信
2014/02/22 职场文书
培训专员岗位职责
2014/02/26 职场文书
法人身份证明书
2014/10/08 职场文书
主持人开场白台词
2015/05/29 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
Echarts如何重新渲染实例详解
2022/05/30 Javascript
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS