搜索

首页  >  问答  >  正文

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

怪我咯怪我咯2782 天前817

全部回复(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
  • 取消回复