New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-req

Package Overview
Dependencies
Maintainers
2
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-req

I/O parser for nodejs http request

  • 2.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
13K
increased by8.18%
Maintainers
2
Weekly downloads
 
Created
Source

Node Req

A facade over Node.js HTTP req object with no side-effects.

NPM Version Build Status Appveyor Coveralls

node-req is an i/o module for parsing and returning values out of HTTP request object using helper methods.

See also

  1. node-res
  2. node-cookie

Http Server

var http = require('http')
var nodeReq = require('node-req')

http.createServer(function (req, res) {

  // get query string from req
  var query = nodeReq.get(req)

}).listen(3000)

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

Parses query string from url an returns an object.

Kind: inner method of Request

ParamTypeDescription
reqhttp.IncomingMessage
[options]ObjectOptions are passed to https://www.npmjs.com/package/qs

Example

const queryString = nodeReq.get(req)

method(req) ⇒ String

Returns the exact copy of request.method. Defined here

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

const method = nodeReq.method(req)

headers(req) ⇒ Object

Returns an object of headers for a given request.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

const headers = nodeReq.headers(req)

header(req, key) ⇒ String

Returns header value for a given key. Also it will handle the inconsistencies between referer and referrer header.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
keyString

Example

const authHeader = nodeReq.header(req, 'Authorization')

fresh(req, res) ⇒ Boolean

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

ParamType
reqhttp.IncomingMessage
reshttp.ServerResponse

Example

if (nodeReq.fresh(req, res)) {
   res.writeHead(304)
}

stale(req, res) ⇒ Boolean

This method is the opposite of the nodeReq.fresh

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
reshttp.ServerResponse

Example

if (!nodeReq.stale(req, res)) {
   res.writeHead(304)
}

ip(req, [trust]) ⇒ String

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

ParamType
reqhttp.IncomingMessage
[trust]Mixed

Example

nodeReq.ip(req, '127.0.0.1')
nodeReq.ip(req, ['::1/128', 'fe80::/10'])

ips(req, [trust]) ⇒ Array

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

ParamType
reqhttp.IncomingMessage
[trust]Mixed

Example

nodeReq.ips(req, '127.0.0.1')
nodeReq.ips(req, ['::1/128', 'fe80::/10'])

protocol(req, [trust]) ⇒ String

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

ParamType
reqhttp.IncomingMessage
[trust]Mixed

Example

const protocol = nodeReq.protocol(req)

secure(req) ⇒ Boolean

Looks for request protocol to check for https existence or returns false.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

const isHttps = nodeReq.secure(req)

subdomains(req, [trust], [offset]) ⇒ Array

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

ParamTypeDefaultDescription
reqhttp.IncomingMessage
[trust]Mixed
[offset]Number2subdomain offset

Example

const subdomains = nodeReq.subdomains(req)

ajax(req) ⇒ Boolean

Determines whether request is an ajax request or not, based on X-Requested-With header.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

if (nodeReq.ajax(req)) {
   res.writeHead(200, {"Content-type": "application/json"})
} else {
   res.writeHead(200, {"Content-type": "text/html"})
}

pjax(req) ⇒ Boolean

Tells whether request has X-Pjax header or not.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

if (nodeReq.pjax(req)) {
   // return partial content
} else {
   // full page refresh
}

hostname(req, [trust]) ⇒ String

Returns the hostname of HTTP request.

Make sure to check proxy-addr for the available options for trust.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
[trust]Mixed

Example

const hostname = nodeReq.hostname(request)

url(req) ⇒ String

Returns request url after removing the query string.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

const url = nodeReq.url(request)

originalUrl(req) ⇒ String

Returns the untouched url.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

const url = nodeReq.originalUrl(request)

is(req, keys) ⇒ String

Tells whether request accept content of a given type or not (based on Content-type) header.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
keysMixed

Example

// req.headers.content-type = 'application/json'

nodeReq.is(req, ['json']) // json
nodeReq.is(req, ['json', 'html']) // json
nodeReq.is(req, ['application/*']) // application/json

nodeReq.is(req, ['html']) // '<empty string>'

accepts(req, keys) ⇒ String

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

ParamType
reqhttp.IncomingMessage
keysMixed

Example

const type = nodeReq.accepts(req, ['json', 'html'])

switch(type) {
 case 'json':
   res.setHeader('Content-Type', 'application/json')
   res.write('{"hello":"world!"}')
   break

 case 'html':
   res.setHeader('Content-Type', 'text/html')
   res.write('<b>hello, world!</b>')
   break

 default:
   res.setHeader('Content-Type', 'text/plain')
   res.write('hello, world!')
}

types(req) ⇒ Array

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

ParamType
reqhttp.IncomingMessage

language(req, accepted) ⇒ String

Returns one of the most preferrable language.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
acceptedArray

languages(req) ⇒ Array

Returns list of all accepted languages from most to least preferred one.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

encoding(req, accepted) ⇒ String

Returns the best maching encoding

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
acceptedArray

encodings(req) ⇒ Array

Returns list of all encodings from most to least preferred one.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

charset(req, accepted) ⇒ String

Returns the best maching charset based upon Accept-Charset header.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage
acceptedArray

charsets(req) ⇒ Array

Returns a list of all charsets from most to least preferred one based upon Accept-Charset header.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

hasBody(req) ⇒ Boolean

Tells whether request has body or not to be read by any body parser.

Kind: inner method of Request

ParamType
reqhttp.IncomingMessage

Example

if (nodeReq.hasBody(request)) {
   // use body parser
}

Keywords

FAQs

Package last updated on 26 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc