浅探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 相关文章推荐
setTimeout和setInterval的浏览器兼容性分析
Feb 27 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
JS实现中英文混合文字溢出友好截取功能
Aug 06 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 Javascript
react的hooks的用法详解
Oct 12 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 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
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python如何生成xml文件
2020/06/04 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
失业者真诚求职信范文
2013/12/25 职场文书
项目计划书范文
2014/01/09 职场文书
校三好学生主要事迹
2014/01/11 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
经济贸易系求职信
2014/08/04 职场文书
殡葬服务心得体会
2014/09/11 职场文书
班主任工作实习计划
2015/01/16 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis