搜尋

首頁  >  問答  >  主體

node.js - Express 框架的body-parser的用法

怪我咯怪我咯2813 天前836

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-04-17 16:12:33

    等等,我翻車了

    它是先按照你在 use 時候給定的 options 進行格式化約束的,然後先按照 json 來轉一次,沒出錯了再接著調用 urlencoded 進行表單其他內容進行接收和格式化。

    其中json轉的時候默認按照 var type = opts.type || 'application/json' 這個 content-type 來進行格式指定檢查請求頭是不是json,如果不是則默認一個空,不然進行 json 的格式化,然後就是後面的 urlencoded 邏輯了

    原始碼如下
    https://github.com/expressjs/...

    function bodyParser (options) {
      var opts = {}
    
      // exclude type option
      if (options) {
        for (var prop in options) {
          if (prop !== 'type') {
            opts[prop] = options[prop]
          }
        }
      }
    
      var _urlencoded = exports.urlencoded(opts)
      var _json = exports.json(opts)
    
      return function bodyParser (req, res, next) {
        _json(req, res, function (err) {
          if (err) return next(err)
          _urlencoded(req, res, next)
        })
      }
    }

    回覆
    0
  • 取消回覆