ios-dev/comments/Home/node_modules/@tinyhttp/send/README.md

111 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# @tinyhttp/send
[![npm (scoped)][npm-badge]](https://npmjs.com/package/@tinyhttp/send)
[![npm][dl-badge]](https://npmjs.com/package/@tinyhttp/send)
[![][web-badge]](https://tinyhttp.v1rtl.site/mw/send)
Extensions for sending a response, including `send`, `sendStatus`, `status`,
`sendFile` and `json`. Works with any backend framework.
## Install
```sh
pnpm i @tinyhttp/send
```
## API
```js
import { json, send, sendStatus, status } from '@tinyhttp/send'
```
### `send(body)` [![][doc-badge]](https://tinyhttp.v1rtl.site/docs#ressend)
Sends the HTTP response.
The body parameter can be a Buffer object, a string, an object, or an array.
##### Example
```ts
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)` [![][doc-badge]](https://tinyhttp.v1rtl.site/docs#resjson)
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()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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
```ts
res.json(null)
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })
```
### `status(number)` [![][doc-badge]](https://tinyhttp.v1rtl.site/docs#resstatus)
Sets the HTTP status for the response. It is a chainable alias of Nodes
`response.statusCode`.
##### Example
```ts
res.status(403).end()
res.status(400).send('Bad Request')
```
### `sendStatus` [![][doc-badge]](https://tinyhttp.v1rtl.site/docs#ressendstatus)
Sets the response HTTP status code to statusCode and send its string
representation as the response body.
##### Example
```ts
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` [![][doc-badge]](https://tinyhttp.v1rtl.site/docs#ressendfile)
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
```js
res.sendFile('song.mp3', { root: process.cwd() }, (err) => console.log(err))
```
## Example
```js
import { createServer } from 'node:http'
import { send } from '@tinyhttp/send'
createServer((req, res) => send(req, res)('Hello World')).listen(3000)
```
[npm-badge]: https://img.shields.io/npm/v/@tinyhttp/send?style=flat-square
[dl-badge]: https://img.shields.io/npm/dt/@tinyhttp/send?style=flat-square
[web-badge]: https://img.shields.io/badge/website-visit-hotpink?style=flat-square
[doc-badge]: https://img.shields.io/badge/-docs-hotpink?style=flat-square