NodeJS-Express Middleware:body-parserとreq.body

1305 ワード

req.body:postリクエストに含まれるデータを返します.デフォルトはundefinedで、body-parserで解析する必要があります.
postメソッド4つの一般的なContent-Type:
  • アプリケーション/www-form-urlencoded:一般的なフォーム発注方式
  • multipart/form-data:送信ファイル
  • アプリケーション/json:json形式でデータを送信(text/plain stringをjsonに変換)
  • text/xml:xml形式でデータを送信(WeChat)
  • body-parserでは4つの解析方式が提供されています
  • bodyParser.json(options)//
  • bodyParser.raw(options)/解析バイナリフォーマット(bufferストリームデータ)
  • bodyParser.text(options)/解析テキストデータ
  • bodyParser.urlencoded(options)/utf-8の符号化を解析するデータoptionsオプション値でよく使われるextended:falseに設定すると、querystringライブラリを使用してURL符号化されたデータを解析し、キー値ペアの中値はStringまたはArrayである.trueを設定すると(デフォルト)、qsライブラリを使用してURL符号化データが解析され、キー値ペアの値は任意のデータ型になります.
  • ex1
  • var express = require('express');
    var bodyParser = require('body-parser');
    
    var app = express();
    
    var jsonParser = bodyParser.json();
    var urlencodedParser = bodyParser.urlencoded({extended:false});
    
    app.post('/home',urlencodedParser, function(req, res) {
        if(!req.body) return res.sendStatus(400);
        res.send('Welcome ' + req.body.username);
    });
    
    app.post('/about',jsonParser, function(req, res) {
        if(!req.body) return res.sendStatus(400);
        res.send('Welcome ~ ' + req.body.username);
    })
    app.listen(3000);