Express Response JSON
Sep 13, 2019
Express response objects have a json()
function. The res.json()
function takes a single parameter, an object obj
, serializes it to JSON, and sends it in the HTTP response body.
const axios = require('axios'); const express = require('express'); const app = express(); app.get('*', function(req, res) { res.json({ answer: 42 }); }); const server = await app.listen(3000); const response = await axios.get('http://localhost:3000'); response.data; // { answer: 42 } response.headers['content-type']; // 'application/json; charset=utf-8'
Express also sets the content-type
header to application/json
. Most HTTP clients, like Axios, handle automatically transforming JSON strings into JavaScript objects using JSON.parse()
when the content type is application/json
.
The res.json()
uses JSON.stringify()
under the hood to serialize objects into JSON. You can configure the arguments that Express passes to JSON.stringify()
using app.use()
. For example, to make Express pretty print JSON, you can use app.set('json spaces', 2)
as shown below.
const axios = require('axios'); const express = require('express'); const app = express(); // Make Express pass '2' as the 3rd argument to `JSON.stringify()` app.set('json spaces', 2); app.get('*', function(req, res) { res.json({ answer: 42, hello: 'world' }); }); const server = await app.listen(3000); const response = await axios.get('http://localhost:3000', { transformResponse: res => res // Disable automatic JSON parsing }); // { // "answer": 42, // "hello": "world" // } response.data;
Want to become your team's Express expert? There's no better way to really grok a framework than to write your own clone from scratch. In 15 concise pages, this tutorial walks you through how to write a simplified clone of Express called Espresso. Get your copy!
Espresso supports:
Get the tutorial and master Express today!
Espresso supports:
- Route handlers, like `app.get()` and `app.post()`
- Express-compatible middleware, like `app.use(require('cors')())`
- Express 4.0 style subrouters
Get the tutorial and master Express today!
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!