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 相关文章推荐
基于jquery的$.ajax async使用
Oct 19 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
浅谈Angular HttpClient简单入门
May 04 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
微信小程序如何使用globalData的方法
Jun 06 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
May 18 Javascript
vue项目接口域名动态获取操作
Aug 13 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
删除重复数据的算法
2006/11/23 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
javascript中new关键字详解
2015/12/14 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python实现随机漫步算法
2018/08/27 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
开办饭店创业计划书
2013/12/28 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
2015年司法局工作总结
2015/05/22 职场文书
培训后的感想
2015/08/07 职场文书
Jsonp劫持学习
2021/04/01 PHP