Express 中间件

Express程序基本上是一系列中间件函数的调用。中间件就是一个函数, 接受 req、res、next几个参数。

中间件函数可以执行任何代码, 对请求和响应对象进行修改, 结束请求/响应循环, 通过 next函数调用堆栈中下一个中间件函数。

必须通过 next 将控制权交给下一个中间件函数, 否则, 请求将保持挂起状态。

错误处理中间件始终采用四个变量, 第一个参数就是错误信息。

    app.use((err, req, res, next) => {
        next()
    })

Express 中唯一内置的中间件函数是 express.static。此函数基于 serve-static,负责提供 Express 应用程序的静态资源。

例子

app.use((req, res, next) => {
    console.log(1)
    next()
})

app.use((req, res, next) => {
    console.log(2)
    next()
})

app.get('/list', (req, res, next) => {
    console.log('get /list')
    next()
})

app.post('/login', (req, res, next) => {
    console.log('post /login')
    next()
})

app.post('/login/user', (req, res, next) => {
    console.log('post /login/user')
    next()
})
  • 如果开启一个服务, 端口号为3000。 那么直接访问 http://localhost:3000 会依次打印
1
2
  • 访问 http://localhost:3000/list get方, 依次打印
1
2
get /list
  • 访问 http://localhost:3000/login/user post请求, 依次打印
1
2
post /login/user

理解Express 中间件的更多相关文章

  1. 理解Express中间件

    阅读目录 一:body-parser中间件 二:cookie-parser中间件 三:express-session 中间件 四:理解使用morgan记录操作日志 回到顶部 一:body-parser ...

  2. 浅析express以及express中间件

    一.express: 1.express: Express是什么? Express是基于node.js平台的web应用开发框架: 作用:可以实现快速搭建骨架: 优点:开发web应用更加方便,更加快捷. ...

  3. 理解express中的中间件

    express是轻量灵活的node.js Web应用框架”.它可以帮助你快速搭建web应用.express是一个自身功能极简,完全是由**路由**和**中间件**构成的一个web开发框架,本质上说,一 ...

  4. express中间件的理解

    参考 :https://blog.csdn.net/huang100qi/article/details/80220012 Express中间件分为三种内置中间件.自定义中间件.第三方中间件 可以与n ...

  5. express 中间件的理解

    nodejs(这指express) 中间件 铺垫: 一个请求发送到服务器,要经历一个生命周期,服务端要: 监听请求-解析请求-响应请求,服务器在处理这一过程的时候,有时候就很复杂了,将这些复杂的业务拆 ...

  6. Express中间件的原理及实现

    在Node开发中免不了要使用框架,比如express.koa.koa2拿使用的最多的express来举例子开发中肯定会用到很多类似于下面的这种代码 var express = require('exp ...

  7. 理解Express express.static 和 __direname 及 __firename的含义

    理解Express express.static 和 __direname 及 __firename的含义 一:理解 app.use(express.static(__direname + '/pub ...

  8. 深入理解 Express.js

    本文针对那些对Node.js有一定了解的读者.假设你已经知道如何运行Node代码,使用npm安装依赖模块.但我保证,你并不需要是这方面的专家.本文针对的是Express 3.2.5版本,以介绍相关概念 ...

  9. Express中间件简单的实现原理

    上一篇理解Express的使用之后, 再总结一篇Express中间件的简单实现原理. 我们知道Express中间件就是一个个的函数, 那么怎么让这些函数有序的执行呢? 那就需要我们调用 next 函数 ...

随机推荐

  1. BeanFilterUtil

    package com.yundaex.utility.bean.filter; import java.util.ArrayList; import java.util.List; import o ...

  2. vbox 挂载共享文件时可能出现的问题以及对应的解决办法

    VMBox挂载共享文件时可能出现的问题以及对应的解决办法 如果出现“未能加载虚拟光盘***.iso 到虚拟电脑的错误” : 左边一栏,右键光盘,eject,再安装

  3. python3+Appium自动化07-滑动操作以及滑动方法封装

    滑动解析 滑动主要分为:水平滑动.垂直滑动.任意方向滑动 滑动轨迹 在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下: def swipe(self, start_x, star ...

  4. placeholder设置默认显示

    <textarea rows="4" cols="50" placeholder="请在此处介绍自己..."> </tex ...

  5. CentOS6.5安装配置详解

    1. 环境要求 VMWare软件: CentOS6.5对应的iso镜像文件(位数对应个人计算机位数). 2. 安装步骤 打开VMWare,文件->新建虚拟机(以下几步默认跳过即可) 命名和选择安 ...

  6. vim配置成c++IDE

    mv ~/.vimrc ~/.vimrcbak mv ~/.vim ~/.vimbak git clone https://github.com/handy1989/vim.git mv vim/.v ...

  7. 【密码学】MD5算法原理

    MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能:    输 ...

  8. 关于PCA降维中遇到的python问题小结

    由于论文需要,开始逐渐的学习CNN关于文本抽取的问题,由于语言功底不好,所以在学习中难免会有很多函数不会用的情况..... ̄へ ̄ 主要是我自己的原因,但是我更多的把语言当成是一个工具,需要的时候查找就 ...

  9. matlab 文件打开设置

    平台 macOS MATLAB 版本 matlab 2017a 需要设置文件打开编码的情况 从windows平台迁移过来的.m文件的编码格式是GB2312的, 而macOS的MATLAB默认是UTF- ...

  10. mybatis使用说明

    起步:1.创建一个maven项目工程.2.打开pom.xml配置文件,3.设置源代码编码方式为UTF-8.4.设置编译源代码的JDK版本.最好大于1.6版本.5. 重点--添加Mybatis的相关依赖 ...