浅探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 相关文章推荐
greybox——不开新窗口看新的网页
Feb 20 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
js改变Iframe中Src的方法
May 05 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 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
拼音码表的生成
2006/10/09 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
zend framework重定向方法小结
2016/05/28 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python3实现生成随机密码的方法
2014/08/23 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Django logging配置及使用详解
2019/07/23 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
Ruby如何定义一个类
2012/10/08 面试题
师德师风演讲稿
2014/05/05 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
二手房购房协议书范本
2014/10/05 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
小学教师党员承诺书
2015/04/27 职场文书
结婚仪式主持词
2015/06/29 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers