浅探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 相关文章推荐
Jquery iframe内部出滚动条
Feb 11 Javascript
禁止拷贝网页内容的js代码
Jan 22 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
ext前台接收action传过来的json数据示例
Jun 17 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
浅谈struts1 & jquery form 文件异步上传
May 25 jQuery
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
解决vue动态为数据添加新属性遇到的问题
Sep 18 Javascript
vue实现重置表单信息为空的方法
Sep 29 Javascript
elementUI Tree 树形控件的官方使用文档
Apr 25 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
一个查看session内容的函数
2006/10/09 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
php简单实现快速排序的方法
2015/04/04 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
JsRender实用入门教程
2014/10/31 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
模范教师事迹材料
2014/12/16 职场文书
师德承诺书
2015/01/20 职场文书
节约用电通知
2015/04/25 职场文书
2015年教务工作总结
2015/05/23 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
银行培训心得体会范文
2016/01/09 职场文书