Introduction
Dans ce projet, vous allez apprendre à créer une simple API de nouvelles à l'aide de Node.js. Vous allez apprendre à créer un serveur, à gérer différentes routes et à renvoyer des données de nouvelles au format spécifique.
👀 Aperçu
curl http://localhost:8080/news
## Sortie :
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Sortie :
## 404
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment créer un serveur à l'aide de Node.js
- Comment gérer la route
/newset renvoyer des données de nouvelles - Comment gérer les autres routes et renvoyer une réponse 404
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre les bases de la création d'un serveur à l'aide de Node.js
- Implémenter une simple API pour renvoyer des données de nouvelles
- Gérer différentes routes et fournir des réponses appropriées
Créer un serveur
Pour commencer, ouvrez l'éditeur. Vous devriez voir un fichier dans l'éditeur - "app.js".
Dans cette étape, vous allez apprendre à créer un serveur à l'aide de Node.js. Suivez les étapes ci-dessous pour terminer cette étape :
Ouvrez le fichier
app.jsdans votre environnement de codage.Importez le module
http, qui fournit la fonctionnalité pour créer un serveur :const http = require("http");Créez un nouveau serveur à l'aide de la méthode
createServer():const serve = http.createServer();Ajoutez un écouteur d'événements au serveur pour gérer les requêtes entrantes :
serve.on("request", (req, res) => { // TODO : Ajoutez du code pour gérer la requête });Démarrez le serveur et écoutez sur le port 8080 :
serve.listen(8080, () => { console.log("Le service a été démarré!"); });
Gérer la route /news
Dans cette étape, vous allez apprendre à gérer la route /news et à renvoyer des données de nouvelles. Suivez les étapes ci-dessous pour terminer cette étape :
Dans l'écouteur d'événements de requête, définissez l'en-tête de réponse pour utiliser le format
utf8:res.setHeader("Content-type", "text/html;charset=utf8");Vérifiez l'URL demandée :
if (req.url == "/news") { // Gérer la route /news } else { // Gérer les autres routes }Préparez les données de nouvelles au format requis :
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "National Focus" }, { channelId: "5572a108b3cdc86cf39001ce", name: "International Focus" } ];Envoyez les données de nouvelles en tant que réponse :
res.end(JSON.stringify(data));
Gérer les autres routes
Dans cette étape, vous allez apprendre à gérer les autres routes qui ne sont pas /news.
Dans l'écouteur d'événements de requête, ajoutez un bloc
elsepour gérer les autres routes :if (req.url == "/news") { // Gérer la route /news //... } else { // Gérer les autres routes res.end("404"); }Dans le bloc
else, envoyez une réponse404pour indiquer que la route demandée n'a pas été trouvée.
Maintenant, votre fichier app.js devrait ressembler à ceci :
const http = require("http");
const serve = http.createServer();
serve.on("request", (req, res) => {
// TODO: Ajoutez du code pour gérer la requête
res.setHeader("Content-type", "text/html;charset=utf8");
console.log(req.url);
if (req.url == "/news") {
const data = [
{
channelId: "5572a108b3cdc86cf39001cd",
name: "National Focus"
},
{
channelId: "5572a108b3cdc86cf39001ce",
name: "International Focus"
}
];
res.end(JSON.stringify(data));
} else {
res.end("404");
}
});
serve.listen(8080, () => {
console.log("Le service a été démarré!");
});
Tester le serveur
Lancez le serveur à l'aide de la commande suivante dans le terminal :
node app.jsOuvrez à nouveau un nouveau terminal et vérifiez que le terminal est correct avec la commande suivante :
curl http://localhost:8080/news
## Sortie :
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Sortie :
## 404
Félicitations! Vous avez réussi à créer une API de nouvelles à l'aide de Node.js.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.



