浅探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 相关文章推荐
学习js所必须要知道的一些
Mar 07 Javascript
前端开发的开始---基于面向对象的Ajax类
Sep 17 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
js强制把网址设为默认首页
Sep 29 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
Feb 08 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 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
星际争霸秘籍
2020/03/04 星际争霸
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python实现无证书加密解密实例
2014/10/27 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
基于python中theano库的线性回归
2018/08/31 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
python类中super() 的使用解析
2019/12/19 Python
pip install命令安装扩展库整理
2021/03/02 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
20年同学聚会感言
2014/02/03 职场文书
商务经理岗位职责
2014/07/30 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python