美文网首页
Express系列(四)

Express系列(四)

作者: 笑红尘123 | 来源:发表于2019-12-04 23:15 被阅读0次

中间件

中间件的作用主要是做中间代理操作,中间件就是在做接收到请求和发送响应中间的一系列操作。express是一个路由和中间件的web框架,Express 应用程序基本上是一系列中间件函数的调用。

一、中间件函数作用

执行任何代码。
对请求和响应对象进行更改。
结束请求/响应循环。
调用堆栈中的下一个中间件函数。

二、中间件的分类

中间件也分为应用层中间件、路由中间件、内置中间件、错误处理中间件和第三方中间件。
1.应用层中间件
应用级中间键绑定到app对象使用app.use和app.method()需要处理http请求的方法,例如GET、PUT、POST,将之前的get或者post替换为use就行。
例如下面实例:

const express=require("express");
var app=express();
//匹配路由之前的操作
app.use(function(req,res){
    console.log("访问之前");
});
app.get("/",function(req,res){
    res.send("首页");
});
app.listen(3000);

这时我们会发现http://localhost:3000/地址一直在加载,但命令行里显示了“访问之前”,说明程序并不会同步执行,如果使用next来是路由继续向下匹配,那么就能又得到主页数据了:

const express=require("express")
var app=express();
//匹配路由之前的操作
app.use(function(req,res,next){
    console.log("访问之前");
    next();
});
app.get("/",function(req,res){
    res.send("首页");
});
app.listen(3000);

2.路由中间件
路由级中间件和应用级中间件类似,需要调用express.Router();
匹配路由时,我们使用 router.use() 或 router.VERB() ,路由中间件结合多次callback可用于用户登录及用户状态检测。

const express = require("express");
var app = express();
var router=express.Router();
router.use("/",function(req,res,next){
    console.log("匹配前");
    next();
});
router.use("/user",function(req,res,next){
    console.log("匹配地址:",req.originalUrl);
    next();
},function(req,res){
    res.send("用户登录");
});
app.use("/",router);
app.listen(3000);

3.错误处理中间件
指当我们匹配不到路由时所执行的操作。错误处理中间件和其他中间件基本一样,只不过其需要开发者提供4个自变量参数。

app.use((err, req, res, next) => {
        res.sendStatus(err.httpStatusCode).json(err);
});

4.内置中间件
从版本4.x开始,Express不再依赖Content,也就是说Express以前的内置中间件作为单独模块,express.static是Express的唯一内置中间件。

express.static(root, [options]);

5.第三方中间件

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');

如果感觉有帮助请留下一个宝贵的赞,或者给小编一个赞赏!!!

相关文章

  • Express系列(四)

    中间件 中间件的作用主要是做中间代理操作,中间件就是在做接收到请求和发送响应中间的一系列操作。express是一个...

  • MEAN 笔记

    Express Express Basic 通常在express或者是MEAN的入口js文件中使用到一系列的设置,...

  • Express 框架

    Express 简介 Express是基于Node.js平台的快速、开放、极简的web应用开发框架。 提供了一系列...

  • Node.js+Express+MongoDB 建站实例

    本项目为系列博客,目前有以下系列 [ Node.js+Express+MongoDB 建站实例(1)-- 网站初始...

  • Express系列(三)

    Express之get和post请求 一、get请求 网站开发中,get都用作数据获取和查询,类似于数据库中的查询...

  • Express系列(六)

    session 一、什么是session? session是另一种记录客户状态的机制,与cookie保存在客户端浏...

  • Express系列(七)

    express模版引擎之ejs 随着前端业务的不断发展,页面交互逻辑的不断提高,让数据和界面实现分离渐渐被提了出来...

  • Express系列(八)

    express之模版引擎jade 一、什么是jade? jade模板引擎相较于原来的html会显得更加简洁,它将标...

  • Express系列(五)

    Cookie 当关闭一个登录过的网址并重新打开它后,我们的登录信息依然没有丢失;当我们浏览了商品后历史记录里出现了...

  • Express系列(一)

    一、什么是 Express?Express是最流行的 Node 框架,是许多其它流行 Node 框架的底层库。它提...

网友评论

      本文标题:Express系列(四)

      本文链接:https://www.haomeiwen.com/subject/ljergctx.html