123456789101112131415161718192021222324252627282930313233343536373839 |
- var TypedError = require("error/typed")
-
- var parseArguments = require("./parse-arguments.js")
- var jsonBody = require("./json.js")
- var formBody = require("./form.js")
-
- var jsonType = "application/json"
- var formType = "application/x-www-form-urlencoded"
- var INVALID_CONTENT_TYPE = TypedError({
- message: "Could not parse content type header: {contentType}",
- type: "invalid.content.type",
- statusCode: 415,
- contentType: null
- })
-
- module.exports = anyBody
-
- function anyBody(req, res, opts, callback) {
- var args = parseArguments(req, res, opts, callback)
- req = args.req
- res = args.res
- opts = args.opts
- callback = args.callback
-
- if (!callback) {
- return anyBody.bind(null, req, res, opts)
- }
-
- var contentType = req.headers["content-type"] || ""
-
- if (contentType.indexOf(jsonType) !== -1) {
- jsonBody(req, res, opts, callback)
- } else if (contentType.indexOf(formType) !== -1) {
- formBody(req, res, opts, callback)
- } else {
- callback(INVALID_CONTENT_TYPE({contentType: contentType}))
- }
- }
|