• Ajax
  • Ant design
  • Axios-Fetch
  • Avue
  • Browser
  • Canvas
  • CSS
  • Dos-bat
  • Dva
  • Dedecms
  • Echart
  • ElementUI
  • Editors
  • Git
  • GeoServer
  • GIS
  • H5
  • Jquery
  • Java安卓
  • Json
  • Javascript
  • Leaflet
  • Linux
  • Life-Info
  • Mock
  • MongoDB
  • Network
  • NodeJS
  • NPM
  • React
  • 设计运营
  • SEO
  • SVG
  • TypeScript
  • Tools
  • umi
  • uni-APP
  • Vant
  • Vue
  • Windows
  • webpack
  • 位置:OC中文网 > 其他 > NodeJS >

    body-parser 使用详解

    来源:直接复制网 时间:09-22

     在http请求种,POST、PUT、PATCH三种请求方法中包含着请求体,也就是所谓的request,在Nodejs原生的http模块中,请求体是要基于流的方式来接受和解析。

    body-parser是一个HTTP请求体解析的中间件,使用这个模块可以解析JSON、Raw、文本、URL-encoded格式的请求体,

    原生:

    1. const http = require('http'); 
    2.  
    3.     http.createServer(function(req, res){ 
    4.         if(req.method.toLowerCase() === 'post'){ 
    5.             let body = ''
    6.             //此步骤为接收数据 
    7.             req.on('data', function(chunk){ 
    8.                 body += chunk; 
    9.             }); 
    10.             //开始解析 
    11.             req.on('end', function(){ 
    12.                 if(req.headers['content-type'].indexOf('application/json')!==-1){ 
    13.                     JSON.parse(body); 
    14.                 }else if(req.headers['content-type'].indexOf('application/octet-stream')!==-1){ 
    15.                     //Rwa格式请求体解析 
    16.                 }else if(req.headers['content-type'].indexOf('text/plain')!==-1){ 
    17.                     //text文本格式请求体解析 
    18.                 }else if(req.headers['content-type'].indexOf('application/x-www-form-urlencoded')!==-1){ 
    19.                     //url-encoded格式请求体解析 
    20.                 }else{ 
    21.                 //其他格式解析 
    22.                 } 
    23.             }) 
    24.         }else{ 
    25.             res.end('其他方式提交') 
    26.         } 
    27.     }).listen(3000) 
    28.  
    29.  
    Express框架默认使用body-parser作为请求体解析中间件,在创建了Express项目之后,可以在app.js文件中找到
     
    1. /* 引入依赖项 */ 
    2. var express = require('express'); 
    3. // …… 
    4. var bodyParser = require('body-parser'); 
    5.  
    6. var routes = require('./routes/index'); 
    7. var users = require('./routes/users'); 
    8.  
    9. var app = express(); 
    10.  
    11. // …… 
    12.  
    13. // 解析 application/json 
    14. app.use(bodyParser.json());  
    15. // 解析 application/x-www-form-urlencoded 
    16. app.use(bodyParser.urlencoded()); 

    ---bodyParser.json()--解析JSON格式
    ---bodyParser.raw()--解析二进制格式
    ---bodyParser.text()--解析文本格式
    ---bodyParser.urlencoded()--解析文本格式