浅探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 相关文章推荐
不要小看注释掉的JS 引起的安全问题
Dec 27 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
利用js实现遮罩以及弹出可移动登录窗口
Jul 08 Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 Javascript
JS创建对象几种不同方法详解
Mar 01 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 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
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
vue组件学习教程
2017/09/09 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
python实现分页效果
2017/10/25 Python
详解supervisor使用教程
2017/11/21 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
优秀校长事迹材料
2014/12/24 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
2015年环保局工作总结
2015/05/22 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL