浅探express路由和中间件的实现


Posted in Javascript onSeptember 30, 2019

1. Express简介

express是一个基于node.js平台的极简,灵活的web应用开发框架,它提供一系列强大的特征,帮助你创建各种web和移动设备应用

express框架核心特征:

  1. 可以设置中间件来响应HTTP请求
  2. 定义了路由表用于执行不同的HTTP请求动作(url=资源)映射
  3. 可以通过向模板传递参数来动态渲染HTML页面

2. 安装

在命令行中输入cnpm install express -g即可进行全局安装

3. 路由和中间件

使用前,先引入express

var express = require('express');
var app = express();

路由

路由表示如何处理HTTP请求中的路径(path)部分

http://host:[port]/[path]

例子:

app.get('/',function(req,res){
  res.send('hello world')
})

以上例子中,get可换成post或其他请求方法,方法的第一个参数'/'为匹配所有路径,可用正则表达式或其他方法进行配对,第二个参数是要执行的函数

中间件

中间件是在服务器收到请求和发送响应之前所执行的一些函数
中间件 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。
中间件的功能包括:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 终结请求-响应循环。
  • 调用堆栈中的下一个中间件。
  • 如果当前中间件没有终结请求-响应循环,则必须调用 next() 方法将控制权交给下一个中间件,否则请求就会挂起。

用app.use来在请求或响应之前插入一个中间件

app.use(function(req,res,next){
  //执行一些代码
  next();
})

可以有多个中间件,next表示让后面中间件继续处理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用jQuery.fn自定义jQuery翻页插件
Jan 20 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
分享10个原生JavaScript技巧
Apr 20 Javascript
JavaScript、jQuery与Ajax的关系
Jan 24 Javascript
jQuery.Callbacks()回调函数队列用法详解
Jun 14 Javascript
AngularJS教程之MVC体系结构详解
Aug 16 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
JavaScript实现单图片上传并预览功能
Sep 30 #Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 #Javascript
laravel实现中文和英语互相切换的例子
Sep 30 #Javascript
JavaScript键盘事件响应顺序详解
Sep 30 #Javascript
vue自动化路由的实现代码
Sep 30 #Javascript
js实现图片上传即时显示效果
Sep 30 #Javascript
vue实现select下拉显示隐藏功能
Sep 30 #Javascript
You might like
php下过滤HTML代码的函数
2007/12/10 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
用js遍历 table的脚本
2008/07/23 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
使用python实现生成用户信息
2017/03/20 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
python实现名片管理系统项目
2019/04/26 Python
python mysql断开重连的实现方法
2019/07/26 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
SQL面试题
2013/04/30 面试题
给排水工程师岗位职责
2013/11/21 职场文书
机关门卫岗位职责
2013/12/30 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
教师工作总结范文2014
2014/11/10 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
Python时间操作之pytz模块使用详解
2022/06/14 Python