nodejs body-parser 解析post數據


安裝

$ npm install body-parser

API

var bodyPaeser =require('body-parser')

可以通過body-parser 對象創建中間件,當接收到客戶端請求時所有的中間件都會給req.body 添加屬性,請求體為空,則解析為空{} (或者出現錯誤)。

bodyParser.json(options)

中間件只會解析 json ,允許請求提任意Unicode編碼支持 gzip 和 deflate 編碼。

options

一個對象,有以下屬性

inflate

默認為false,true->壓縮的請求體會被解壓,false->壓縮的請求提不被解壓。

limit

控制請求體最大大小,默認為100kb,當為數字時會轉換為bytes,當為字符串時,value值會通過 bytes庫 轉換為字節大小。

reviver

此選項會通過JSON.parse直接傳給其第二個參數。

strict

默認為true,當為true時只接受數組和對象,當為false時會接受任何JSON.parse 能接受的。

type

type 選項用來決定中間件要解析媒體類型。選項可以是一個函數或者是字符串。當為字符串時,可以直接通過type-is 庫直接傳遞給選項,字符串也可以為一個擴展名(例如json)、mime 類型(application/json、/ 、*/json)。當為函數時:默認為application/json。

verify

verify選項,若缺失則為一個函數function(req,res,buf,encoding),buf為一個Buffer。

bodyParse.raw(option)

將請求體內容作為Buffer來處理,並返回。支持gzip deflate 壓縮。

inflate

limit

type

verify

bodyParser.text(option)

將請求提內容作為字符串來處理,並返回。支持gzip deflate 壓縮。

defaultCharset

若請求頭未設置Content-Type則默認為utf8

inflate

type

verify

bodyParser.urlencoded(option)

中間件只解析urlencoded 請求體,並返回,只支持UTF-8編號文本,支持gzip deflate 壓縮。

extend

ture->使用queryString庫(默認) false->使用qs庫。

limit

parameterlimit

指定parameters最長長度,默認1000

type

verify

舉例:

 1 const express=require('express');
 2 const bodyParser=require('body-parser');
 3 
 4 var server=express();
 5 server.listen(8080);
 6 
 7 server.use(bodyParser.urlencoded({
 8   extended: false,                 //擴展模式
 9   limit:    2*1024*1024           //限制-2M
10 }));
11 
12 server.use('/', function (req, res){
13   console.log(req.body); //POST
14   //req.query   GET
15  //req.body    POST
16 });

html代碼:

<form action="http://localhost:8080" method="post">
      用戶:<input type="text" name="user" /><br>
      密碼:<input type="password" name="pass" /><br>
<input type="submit" value="提交" >

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM