Réponses JSON
Fait partie de la section Les bases d’Express du Journey Node.js de Coddy. Leçon 6 sur 20.
Un programme qui appelle votre serveur a besoin de données qu’il peut lire, pas d’une phrase.
app.get('/api/weather', (req, res) => {
res.json({ city: 'Oslo', temp: 4, rain: true });
});JSON est un format texte pour les objets et les tableaux. res.json(value) convertit la valeur en JSON et définit l’en-tête Content-Type sur application/json ; un en-tête est une ligne nommée envoyée avec la réponse, et celui-ci indique le type de corps qui suit. Le client reçoit {"city":"Oslo","temp":4,"rain":true} et lit temp comme un nombre.
res.send avec une chaîne envoie text/html, que le programme devrait analyser. Les routes destinées aux programmes commencent généralement par /api, afin que les pages et les données ne partagent jamais le même chemin.
Défi
FacileGET /api/recipesrenvoie le tableaurecipesau format JSON.GET /api/recipes/:idrenvoie une recette au format JSON ; un identifiant inconnu renvoie404.
Envoyez GET /api/recipes, GET /api/recipes/2 et GET /api/recipes/99. Comparez les en-têtes avec GET /recipes.
Essayez vous-même
import express from 'express';
import { recipes } from './data.js';
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Recipe Box');
});
// type('text') envoie du texte brut, donc chaque titre s’affiche sur sa propre ligne.
app.get('/recipes', (req, res) => {
const { tag } = req.query;
const list = tag ? recipes.filter((recipe) => recipe.tags.includes(tag)) : recipes;
res.type('text').send(list.map((recipe) => recipe.title).join('\n'));
});
app.get('/recipes/:id', (req, res) => {
const recipe = recipes.find((r) => r.id === Number(req.params.id));
if (!recipe) {
res.status(404).send('No such recipe');
return;
}
res.send(recipe.title);
});
app.get('/about', (req, res) => {
res.send('Recipe Box collects family recipes.');
});
app.listen(3000, () => {
console.log('Recipe Box is running on port 3000');
});
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les bases d’Express
1Votre premier serveur
Bonjour, ExpressLe module httpPlus de routesParamètres de route