• express学习(二)—— Post()类型和中间件


    1.数据:GET、POST

    2.中间件:使用、写、链式操作

    • GET-无需中间件
      req.query

    • POST-需要"body-parser"

    server.use(bodyParser.urlencoded({}));
    
    server.use(function (){
    	req.body
    });
    
    • 链式操作:

    1.1.GET、POST

    利用 req.query

      server.use(bodyParser.urlencoded({extended:false/true,limit: }));  //limit限制 大小
      server.use(function (req, res, next){
        req.body
      });
    

    疑问:bodyParser.urlencoded 中设置 extended 为 true 和为 false 有什么区别吗?

    当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
    

    2.1.链式操作

      server.use(function (req, res, next){});
      server.get('/', function (req, res, next){});
      server.post(function (req, res, next){});
    

    next——下一个步骤
    next();

      server.use('/login', function (){
        mysql.query(function (){
          if(有错)
            res.emit('error');
          else
            next();
        });
      });
    

    2.2 中间件(body-parser)、自己写中间件

    有个 next(); 参数

     server.use(function (req, res, next){
        var str='';
        req.on('data', function (data){
          str+=data;
        });
        req.on('end', function (){
          req.body=querystring.parse(str);
          next();
        });
      });
    
    

    自己写的中间件实例:

    module模块:

    import { request } from 'https';
    import { read } from 'fs';
    
    // 自己写的中间件
    const querystring=require('querystring');
    
    module.exports={
      aaa: function (){
        return function (req, res, next){
          var str='';
          req.on('data', function (data){
            str+=data;
          });
          req.on('end', function (){
            req.body=querystring.parse(str);
    
            next();
          });
        };
      }
    }
    

    js文件:

    const express = require('express');
    const bodyParser2 = require('  //改成你自己的路径 ');
    
    var server = express();
    server.listen(8080)
    
    // 用自己的中间件
    server.use(bodyParser2.aaa());
    
    server.use('/',function(req,res){
        console.log(req.body);
    })
    
    
    
  • 相关阅读:
    2020杭电多校第二场 1006.The Oculus
    2020杭电多校第一场 1005.Fibonacci Sum
    数论——中国剩余定理
    数论——线性同余方程
    数论——乘法逆元
    数论——裴蜀定理
    javascript预解析和作用域
    数组的排序..........加深难度
    值类型和引用类型
    js中的==和===
  • 原文地址:https://www.cnblogs.com/n2meetu/p/7977069.html
Copyright © 2020-2023  润新知