-
Notifications
You must be signed in to change notification settings - Fork 15
/
any.js
38 lines (31 loc) · 1.04 KB
/
any.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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}))
}
}