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

latest
Source
npmnpm
Version
3.1.0
Version published
Maintainers
1
Created
Source

http-ndjson

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

Log http requests as ndjson. Works pretty well with bole, so you should probably use it with that. That is my recommendation.

Installation

$ npm install http-ndjson

Usage

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

http.createServer(function (req, res) {
  const setSize = httpNdjson(req, res, console.log)
  const myCoolResponse = 'chickens'
  setSize(myCoolResponse.length)
  res.end(myCoolResponse)
}).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(function (req, res) {
  const opts = { req: { requestId: req.headers['requestId'] } }
  httpNdjson(req, res, opts, console.log)
  res.end()
}).listen()

If opts.req or opts.res is a function, it will be called and its return value will be used to set custom fields.

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?, cb)

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
  • opts: set options
  • cb: handle the returned message

See Also

License

MIT

Keywords

http

FAQs

Package last updated on 14 Nov 2017

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