![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
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.
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.
Object
String
Object
String
Boolean
Boolean
String
Array
String
Boolean
Array
Boolean
Boolean
String
String
String
String
String
Array
String
Array
String
Array
String
Array
Boolean
Object
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.get(req)
String
Returns the exact copy of request.method
. Defined
here
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const method = nodeReq.method(req)
Object
Returns an object of headers for a given request.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const headers = nodeReq.headers(req)
String
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.header(req, 'Authorization')
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
Param | Type |
---|---|
req | http.IncomingMessage |
res | http.ServerResponse |
Example
if (nodeReq.fresh(req, res)) {
res.writeHead(304)
}
Boolean
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.stale(req, res)) {
res.writeHead(304)
}
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
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
nodeReq.ip(req, '127.0.0.1')
nodeReq.ip(req, ['::1/128', 'fe80::/10'])
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
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
nodeReq.ips(req, '127.0.0.1')
nodeReq.ips(req, ['::1/128', 'fe80::/10'])
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
Param | Type |
---|---|
req | http.IncomingMessage |
[trust] | Mixed |
Example
const protocol = nodeReq.protocol(req)
Boolean
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
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.subdomains(req)
Boolean
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.ajax(req)) {
res.writeHead(200, {"Content-type": "application/json"})
} else {
res.writeHead(200, {"Content-type": "text/html"})
}
Boolean
Tells whether request has X-Pjax header or not.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
if (nodeReq.pjax(req)) {
// return partial content
} else {
// full page refresh
}
String
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 = nodeReq.hostname(request)
String
Returns request url after removing the query string.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const url = nodeReq.url(request)
String
Returns the untouched url.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
Example
const url = nodeReq.originalUrl(request)
String
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.is(req, ['json']) // json
nodeReq.is(req, ['json', 'html']) // json
nodeReq.is(req, ['application/*']) // application/json
nodeReq.is(req, ['html']) // '<empty string>'
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
Param | Type |
---|---|
req | http.IncomingMessage |
keys | Mixed |
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!')
}
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
Param | Type |
---|---|
req | http.IncomingMessage |
String
Returns one of the most preferrable language.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
Returns list of all accepted languages from most to least preferred one.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
String
Returns the best maching encoding
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
Returns list of all encodings from most to least preferred one.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
String
Returns the best maching charset based upon
Accept-Charset
header.
Kind: inner method of Request
Param | Type |
---|---|
req | http.IncomingMessage |
accepted | Array |
Array
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
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.hasBody(request)) {
// use body parser
}
FAQs
I/O parser for nodejs http request
The npm package node-req receives a total of 12,541 weekly downloads. As such, node-req popularity was classified as popular.
We found that node-req demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.