浅探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 相关文章推荐
图片自动更新(说明)
Oct 02 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
json定义及jquery操作json的方法
Oct 03 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 jQuery
JS排序之冒泡排序详解
Apr 08 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
Sep 23 Javascript
优化Vue中date format的性能详解
Jan 13 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
基于mysql的bbs设计(三)
2006/10/09 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
PHP可变函数的使用详解
2013/06/14 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python3.6简单反射操作示例
2018/06/14 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Pytorch转tflite方式
2020/05/25 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
工商管理本科毕业生求职信范文
2013/10/05 职场文书
视光学专业毕业生推荐信
2013/10/28 职场文书
小学教师办公室制度
2014/02/03 职场文书
售后服务承诺书
2014/03/26 职场文书
迎新晚会策划方案
2014/06/13 职场文书
开平碉楼导游词
2015/02/06 职场文书
《给予树》教学反思
2016/03/03 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技