浅探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 学习笔记 选择器之三
Jul 23 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
May 17 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
使用Typescript和ES模块发布Node模块的方法
May 25 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 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 isset()与empty()的使用区别详解
2010/08/29 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
js post方式传递提交的实现代码
2010/05/31 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
python访问sqlserver示例
2014/02/10 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python django事务transaction源码分析详解
2017/03/17 Python
详解Python装饰器
2019/03/25 Python
Python实现TCP通信的示例代码
2019/09/09 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
如何利用python发送邮件
2020/09/26 Python
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
新三好学生主要事迹
2014/01/23 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
工商管理本科生求职信
2014/07/13 职场文书
纪律教育月活动总结
2014/08/26 职场文书
投资入股合作协议书
2014/10/28 职场文书
生日祝酒词大全
2015/08/10 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers