浅探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 相关文章推荐
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
Javascript变量函数浅析
Sep 02 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
利用JavaScript模拟京东按键输入功能
Dec 01 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
使用php4加速网络传输
2006/10/09 PHP
调整PHP的性能
2013/10/30 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
python实现微信小程序自动回复
2018/09/10 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Django 拆分model和view的实现方法
2019/08/16 Python
Python计算IV值的示例讲解
2020/02/28 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
运动会方队口号
2014/06/07 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书