Wrapper over NodeJs res object to simplify the process of sending HTTP response.
- Simple to use API for making HTTP response.
- Properly closes the streams
pipe
to the response object. - Support for lazily sending the response. Helpful when you want to mutate the response inside a
downstream middleware
. - Etag generation.
- In built support for sending plain and signed cookies.
Install the package from npm as follows:
npm i @poppinss/response
# yarn
yarn add @poppinss/response
and then use it as follows
import { Response, ResponseConfigContract } from '@poppinss/response'
import { createServer } from 'http'
const config: ResponseConfigContract = {
etag: false,
jsonpCallbackName: 'callback',
secret: 'optional-secret-to-sign-cookies',
cookie: {},
}
createServer((req, res) => {
const response = new Response(req, res, config)
response.send({ hello: 'world' }) // objects
response.send(Buffer.from('hello world')) // buffer
response.send(true) // boolean
response.send(10) // numbers
response.send('<p> Hello world </p>') // html
response.pipe(fs.createReadStream('profile.jpg')) // streams
response.download('path/to/file.jpg') // stream files
response.attachment('path/to/file.jpg') // set Content-Disposition header
response.cookie('session-id', '1') // set signed cookie
})
{ |
|
"etag": false |
Whether or not to generate |
"jsonpCallbackName": "callback" |
The callback name for the JSONP response. In case of dynamic callback names, you can passing it inline when calling |
"secret" |
Optional Define a secret to sign cookies. |
"cookie" |
Partial Config to generate the cookie header. Make sure to check cookie package docs for list of available options. |
} |
Following are the autogenerated files via Typedoc