@tinyhttp/send
Extensions for sending a response, including send
, sendStatus
, status
, sendFile
and json
. Works with any backend framework.
Install
pnpm i @tinyhttp/send
API
import { send, sendStatus, status, json } from '@tinyhttp/send'
send(body)
Sends the HTTP response.
The body parameter can be a Buffer object, a string, an object, or an array.
Example
res.send(Buffer.from('whoop'))
res.send({ some: 'json' })
res.send('<p>some html</p>')
res.status(404).send('Sorry, we cannot find that!')
res.status(500).send({ error: 'something blew up' })
json(body)
Sends a JSON response. This method sends a response (with the correct content-type) that is the parameter converted to a JSON string using JSON.stringify()
.
The parameter can be any JSON type, including object, array, string, boolean, number, or null, and you can also use it to convert other values to JSON.
Example
res.json(null)
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })
status(number)
Sets the HTTP status for the response. It is a chainable alias of Node’s response.statusCode
.
Example
res.status(403).end()
res.status(400).send('Bad Request')
sendStatus
Sets the response HTTP status code to statusCode and send its string representation as the response body.
Example
res.sendStatus(200)
res.sendStatus(403)
res.sendStatus(404)
res.sendStatus(500)
If an unsupported status code is specified, the HTTP status is still set to statusCode and the string version of the code is sent as the response body.
sendFile
Sends a file by piping a stream to response. It also checks for extension to set a proper Content-Type
header.
Path argument must be absolute. To use a relative path, specify the root
option first.
Example
res.sendFile('song.mp3', { root: process.cwd() }, (err) => console.log(err))
Example
import { createServer } from 'http'
import { send } from '@tinyhttp/send'
createServer((req, res) => send(req, res)('Hello World')).listen(3000)