Node Req
A facade over Node.js HTTP
req
object with no side-effects.
node-req
is an i/o module for parsing and returning values out of HTTP request object using helper methods.
See also
Http Server
var http = var nodeReq = http
Yes, that's all, node-req
makes no assumption on how to add routes or handle HTTP requests. All it does it parse request object and return values out of it.
API
- get(req, [options]) ⇒
Object
- method(req) ⇒
String
- headers(req) ⇒
Object
- header(req, key) ⇒
String
- fresh(req, res) ⇒
Boolean
- stale(req, res) ⇒
Boolean
- ip(req, [trust]) ⇒
String
- ips(req, [trust]) ⇒
Array
- protocol(req, [trust]) ⇒
String
- secure(req) ⇒
Boolean
- subdomains(req, [trust], [offset]) ⇒
Array
- ajax(req) ⇒
Boolean
- pjax(req) ⇒
Boolean
- hostname(req, [trust]) ⇒
String
- url(req) ⇒
String
- originalUrl(req) ⇒
String
- is(req, keys) ⇒
String
- accepts(req, keys) ⇒
String
- types(req) ⇒
Array
- language(req, accepted) ⇒
String
- languages(req) ⇒
Array
- encoding(req, accepted) ⇒
String
- encodings(req) ⇒
Array
- charset(req, accepted) ⇒
String
- charsets(req) ⇒
Array
- hasBody(req) ⇒
Boolean
Object
get(req, [options]) ⇒ Parses query string from url an returns an object.
Kind: inner method of Request
Param | Type | Description |
---|---|---|
req | http.IncomingMessage |
|
[options] | Object |
Options are passed to https://www.npmjs.com/package/qs |
Example
const queryString = nodeReq
String
method(req) ⇒ Returns the exact copy of request.method
. Defined
here
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const method = nodeReqmethodreq
Object
headers(req) ⇒ Returns an object of headers for a given request.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const headers = nodeReqheadersreq
String
header(req, key) ⇒ Returns header value for a given key. Also
it will handle the inconsistencies between
referer
and referrer
header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
key | String |
Example
const authHeader = nodeReq
Boolean
fresh(req, res) ⇒ Returns the freshness of a response inside the client
cache. If client cache has the latest response, this
method will return true
, otherwise it will return
false
.
Also when HTTP header Cache-Control: no-cache
is present
this method will return false everytime.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
res | http.ServerResponse |
Example
if nodeReq res
Boolean
stale(req, res) ⇒ This method is the opposite of the nodeReq.fresh
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
res | http.ServerResponse |
Example
if !nodeReq res
String
ip(req, [trust]) ⇒ Returns the most trusted ip address for the HTTP request. It will handle the use cases where your server is behind a proxy.
Make sure to check proxy-addr
for the available options for trust
.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
nodeReqnodeReq
Array
ips(req, [trust]) ⇒ Returns list of all remote addresses ordered with most trusted on the top of the list.
Make sure to check proxy-addr
for the available options for trust
.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
nodeReq.ips(req, '127.0.0.1')
nodeReq.ips(req, ['::1/128', 'fe80::/10'])
String
protocol(req, [trust]) ⇒ Returns request protocol based upon encrypted connection or X-Forwaded-Proto header.
Make sure to check proxy-addr
for the available options for trust
.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
const protocol = nodeReq.protocol(req)
Boolean
secure(req) ⇒ Looks for request protocol to check for https existence or returns false.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const isHttps = nodeReq.secure(req)
Array
subdomains(req, [trust], [offset]) ⇒ Returns the request subdomains as an array. Also
it will make sure to exclude www
from the
subdomains list.
Make sure to check proxy-addr
for the available options for trust
.
Kind: inner method of Request
Param | Type | Default | Description |
---|---|---|---|
req | http.IncomingMessage |
||
[trust] | Mixed |
||
[offset] | Number |
2 |
subdomain offset |
Example
const subdomains = nodeReq
Boolean
ajax(req) ⇒ Determines whether request is an ajax request or not, based on X-Requested-With header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
if nodeReq res else res
Boolean
pjax(req) ⇒ Tells whether request has X-Pjax header or not.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
if nodeReq // return partial content else // full page refresh
String
hostname(req, [trust]) ⇒ Returns the hostname of HTTP request.
Make sure to check proxy-addr
for the available options for trust
.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
const hostname = nodeReqhostnamerequest
String
url(req) ⇒ Returns request url after removing the query string.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const url = nodeReq
String
originalUrl(req) ⇒ Returns the untouched url.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const url = nodeReq
String
is(req, keys) ⇒ Tells whether request accept content of a given type or not (based on Content-type) header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
keys | Mixed |
Example
// req.headers.content-type = 'application/json' nodeReq // jsonnodeReq // jsonnodeReq // application/json nodeReq // '<empty string>'
String
accepts(req, keys) ⇒ Return the best possible response accepted by the
client. This is based on the Accept
header.
Learn more about it
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
keys | Mixed |
Example
const type = nodeReq
Array
types(req) ⇒ This method is similar to {{#crossLink "Request/accepts"}}{{/crossLink}}, instead it will return an array of types from most to least preferred one.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
String
language(req, accepted) ⇒ Returns one of the most preferrable language.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
languages(req) ⇒ Returns list of all accepted languages from most to least preferred one.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
String
encoding(req, accepted) ⇒ Returns the best maching encoding
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
encodings(req) ⇒ Returns list of all encodings from most to least preferred one.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
String
charset(req, accepted) ⇒ Returns the best maching charset based upon
Accept-Charset
header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
charsets(req) ⇒ Returns a list of all charsets from most
to least preferred one based upon
Accept-Charset
header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Boolean
hasBody(req) ⇒ Tells whether request has body or not to be read by any body parser.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
if nodeReq // use body parser