zoukankan      html  css  js  c++  java
  • 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);
    })
    
    
    
  • 相关阅读:
    如何为创建大量实例节省内存?
    4-5
    4-6
    4-4
    4-3
    4-2
    3-11
    4-1
    3-10
    3-8
  • 原文地址:https://www.cnblogs.com/n2meetu/p/7977069.html
Copyright © 2011-2022 走看看