浅探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 相关文章推荐
分享一个我自己写的ToolTip提示插件(附源码)
Jan 20 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
js实现无缝滚动图
Feb 22 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
HTML中使背景图片自适应浏览器大小实例详解
Apr 06 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 Javascript
js中getter和setter用法实例分析
Aug 14 Javascript
javascript实现blob加密视频源地址的方法
Aug 08 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
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
python3中eval函数用法使用简介
2019/08/02 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
python复合条件下的字典排序
2020/12/18 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
2016大学自主招生推荐信范文
2015/03/23 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
python图片灰度化处理的几种方法
2021/06/23 Python
python ansible自动化运维工具执行流程
2021/06/24 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫