size-stream
v1.0.1 http response http-framework stream streaming node streams2 res
size-stream
Count the size of a stream in bytes.
Node's res
object doesn't expose knowledge about the response size that it's
sending. By counting the bytes passed to res
it's now possible to retrieve
both the size (e.g. for logging) and properly set the Content-Length
header.
Installation
$ npm install size-stream
Usage
const httpNdjson = require('http-ndjson')
const sizeStream = require('size-stream')
const stdout = require('stdout-stream')
const pump = require('pump')
const http = require('http')
http.createServer((req, res) => {
const httpLogger = httpNdjson(req, res)
pump(httpLogger, stdout)
const size = sizeStream()
size.once('size', function (size) {
httpLogger.setSize(size)
res.setHeader('Content-Length', size)
})
pump(req, router(req, res), size, res)
}).listen()
API
size = sizeStream(res)
Create a PassThrough
stream.
size.on('size', cb(size))
Emits the total stream size in bytes when the stream ends.