30 lines
683 B
JavaScript
30 lines
683 B
JavaScript
var jsonParse = require("safe-json-parse")
|
|
|
|
var body = require("./index.js")
|
|
var parseArguments = require("./parse-arguments.js")
|
|
|
|
module.exports = jsonBody
|
|
|
|
function jsonBody(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 jsonBody.bind(null, req, res, opts)
|
|
}
|
|
|
|
var parse = opts.JSON ? opts.JSON.parse : jsonParse
|
|
var reviver = opts.reviver || null
|
|
|
|
body(req, res, opts, function (err, body) {
|
|
if (err) {
|
|
return callback(err)
|
|
}
|
|
|
|
parse(body, reviver, callback)
|
|
})
|
|
}
|