.. | ||
HISTORY.md | ||
index.js | ||
LICENSE | ||
package.json | ||
README.md |
type-is
Infer the content-type of a request.
Install
$ npm install type-is
API
var http = require('http')
var is = require('type-is')
http.createServer(function (req, res) {
var istext = is(req, ['text/*'])
res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text')
})
type = is(request, types)
request
is the node HTTP request. types
is an array of types.
// req.headers.content-type = 'application/json'
is(req, ['json']) // 'json'
is(req, ['html', 'json']) // 'json'
is(req, ['application/*']) // 'application/json'
is(req, ['application/json']) // 'application/json'
is(req, ['html']) // false
type = is.is(mediaType, types)
mediaType
is the media type string. types
is an array of types.
var mediaType = 'application/json'
is.is(mediaType, ['json']) // 'json'
is.is(mediaType, ['html', 'json']) // 'json'
is.is(mediaType, ['application/*']) // 'application/json'
is.is(mediaType, ['application/json']) // 'application/json'
is.is(mediaType, ['html']) // false
Each type can be:
- An extension name such as
json
. This name will be returned if matched. - A mime type such as
application/json
. - A mime type with a wildcard such as
*/json
orapplication/*
. The full mime type will be returned if matched - A suffix such as
+json
. This can be combined with a wildcard such as*/vnd+json
orapplication/*+json
. The full mime type will be returned if matched.
false
will be returned if no type matches.
null
will be returned if the request does not have a body.
Examples
Example body parser
var is = require('type-is');
function bodyParser(req, res, next) {
if (!is.hasBody(req)) {
return next()
}
switch (is(req, ['urlencoded', 'json', 'multipart'])) {
case 'urlencoded':
// parse urlencoded body
throw new Error('implement urlencoded body parsing')
break
case 'json':
// parse json body
throw new Error('implement json body parsing')
break
case 'multipart':
// parse multipart body
throw new Error('implement multipart body parsing')
break
default:
// 415 error code
res.statusCode = 415
res.end()
return
}
}