@otterhttp/send
v3.0.3
Published
json, send, sendFile, status and sendStatus methods for tinyhttp
Downloads
196
Maintainers
Readme
@otterhttp/send
Extensions for sending a response, including send
, sendStatus
, sendFile
and json
.
Works with any backend framework that supports async
/await
middleware.
Install
pnpm i @otterhttp/send
API
import { json, send, sendStatus, status } from '@otterhttp/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) // equivalent to res.status(200).send('OK')
res.sendStatus(403) // equivalent to res.status(403).send('Forbidden')
res.sendStatus(404) // equivalent to res.status(404).send('Not Found')
res.sendStatus(500) // equivalent to res.status(500).send('Internal Server Error')
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
await res.sendFile('song.mp3', { root: process.cwd() })
Example
import { createServer } from 'node:http'
import { send } from '@otterhttp/send'
createServer((req, res) => send(res, 'Hello World')).listen(3000)