zoukankan      html  css  js  c++  java
  • express中间件及body-parser第三方中间件获取post传值

    -

    中间件

    在访问路由前或访问路由后做的一系列处理

    express应用可使用如下几种中间件

    1、应用级中间件

    2、路由级中间件

    3、错误处理中间件

    4、内置中间件

    5、第三方中间件

    一、应用级中间件

    // 应用级中间件(可以用于权限判断)
    app.use(function(req,res,next){// 匹配任何路由
    
      // do some
      next();//表示匹配完成这个中间件之后 程序继续往下执行
    })

    二、路由级中间件  (比较少用)

    正常情况下,比如先匹配到/news/add路由,就不会往下匹配了,如果执行next().就会继续往下匹配 /news/:id 

    app.get("/news/add",(req,res,next) => {//这个是 /news/:id 路由的路由级中间件
      console.log("匹配到news/add");
      // do some
      next()
    })
    
    app.get("/news/:id",(req,res) => {
      console.log(req.params.id);
    })

     三、错误处理中间件

    // 错误处理中间件
    app.use((req,res,next) => {
      res.status(404).send("404");//返回状态404 并向页面返回404
    })

    四、内置中间件

    app.use("express.static("./static")) //匹配所有的路径
    app.use("./news",express.static("./static")) //匹配所有的路径

    五、第三方中间件

    拿body-parser来举例 获取post传值  npmjs.com 搜索body-parser

    /**
     * 获取post传来的数据
     * 1、cnpm install body-parser --save
     * 2、var bodyParser = require("body-parser")
     * 3、配置中间件
     *    //parse application/x-www-form-urlencoded
          app.use(bodyParser.urlencoded({ extended: false }))
     
          //parse application/json
          app.use(bodyParser.json())
    
        4、接收post数据
          req.body
     */
    
    const express = require("express");
    const app = express();
    const bodyParser = require("body-parser")
    // 配置body-parser中间件
    // parse application/x-www-form-urlencoded 解析form表单数据
    app.use(bodyParser.urlencoded({ extended: false }))
     
    // parse application/json 解析json数据
    app.use(bodyParser.json())
    
    
    app.get("/login",(req,res) => {
      // req.query 获取get传值
      res.render("login",{})
    
    })
    
    app.post("/doLogin",(req,res) => {
      // req.body 获取post传值
      console.log(req.body);
      res.send("执行提交")
    
    })
    
    app.listen(3000)

    -

  • 相关阅读:
    JAVA07-Object类、Date类、Calendar类、System类、包装类、Collection、泛型、List、Set、数据结构、Collections
    大话数据结构03-线性表
    大话数据结构02-算法
    大话数据结构01-数据结构序论
    03-移动营销设计-H5设计方法
    02-移动营销设计-设计流程与规范技巧
    字典的定义和操作 (Python)
    列表的系列操作(python)
    列表操作之定义,切片(取元素)(Python)
    python的基础socket知识
  • 原文地址:https://www.cnblogs.com/fqh123/p/15230365.html
Copyright © 2011-2022 走看看