Latest Socket ResearchMalicious Chrome Extension Performs Hidden Affiliate Hijacking.Details
Socket
Book a DemoInstallSign in
Socket

http-ndjson

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

http-ndjson

Log http requests as ndjson

Source
npmnpm
Version
2.3.1
Version published
Weekly downloads
455
269.92%
Maintainers
1
Weekly downloads
 
Created
Source

http-ndjson

NPM version build status Test coverage Downloads js-standard-style

Log http requests as ndjson.

Installation

$ npm install http-ndjson

Usage

const httpNdjson = require('http-ndjson')
const http = require('http')

http.createServer((req, res) => {
  httpNdjson(req, res).pipe(process.stdout)
  res.end()
}).listen()
{ name: 'http', method: 'GET', message: 'request', url: '/' }
{ name: 'http', method: 'GET', message: 'response', url: '/', statusCode: 200, elapsed: '5ms' }

Log custom properties

http-ndjson logs a sensible set of standard properties, but sometimes there's a need to dive in and log more. An optional third argument can be added with custom fields that will be logged on either request or response.

const httpNdjson = require('http-ndjson')
const http = require('http')

http.createServer((req, res) => {
  const opts = { req: { requestId: req.headers['requestId'] } }
  httpNdjson(req, res, opts)
  res.end()
}).listen()

Forward headers

Determining the origin of a request can be hard when using reverse-proxies. It's not too uncommon for users to mask their IP by providing an x-forwarded-for header. http-ndjson makes no assumptions about forwarding headers and logs all properties instead. The following headers are logged:

  • x-forwarded-for: standardized reverse proxy header (rfc7239)
  • x-real-ip: non-standard reverse proxy header
  • http-client-ip: non-standard reverse proxy header

API

readStream = httpNdjson(req, res, opts?)

Create an http logger. Returns a write stream. Opts can contain the following values:

  • req: an object with values that will be logged on request
  • res: an object with values that will be logged on response

readStream.setContentLength(size)

Set the content length in bytes.

See Also

License

MIT

Keywords

http

FAQs

Package last updated on 27 Oct 2015

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