走同样的路,发现不同的人生
等等,我翻車了
它是先按照你在 use 時候給定的 options 進行格式化約束的,然後先按照 json 來轉一次,沒出錯了再接著調用 urlencoded 進行表單其他內容進行接收和格式化。
其中json轉的時候默認按照 var type = opts.type || 'application/json' 這個 content-type 來進行格式指定檢查請求頭是不是json,如果不是則默認一個空,不然進行 json 的格式化,然後就是後面的 urlencoded 邏輯了
var type = opts.type || 'application/json'
原始碼如下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) }) } }
等等,我翻車了
它是先按照你在 use 時候給定的 options 進行格式化約束的,然後先按照 json 來轉一次,沒出錯了再接著調用 urlencoded 進行表單其他內容進行接收和格式化。
其中json轉的時候默認按照
var type = opts.type || 'application/json'
這個 content-type 來進行格式指定檢查請求頭是不是json,如果不是則默認一個空,不然進行 json 的格式化,然後就是後面的 urlencoded 邏輯了原始碼如下
https://github.com/expressjs/...