# The res Object — Express.js

Source: https://www.geekswithgeeks.com/en/expressjs/ex-res-object

> Send text, JSON, status codes, or redirect the client.

## send, json, status, redirect

`res.send()` sends text/HTML/buffer, `res.json()` sends JSON, `res.status(code)` sets the HTTP status, `res.redirect(url)` sends a 3xx redirect.

## Chaining

Most `res` methods return `res`, so they chain naturally.

```javascript
app.post('/items', (req, res) => {
  res.status(201).json({ id: 1, name: 'Widget' });
});

app.get('/old-path', (req, res) => {
  res.redirect(301, '/new-path');
});
```

## Respond exactly once

Calling `res.send`/`res.json` twice on one request throws `ERR_HTTP_HEADERS_SENT` — always `return` after sending inside a branch.
