Écrire un service Web avec Node.js

Ce guide explique comment écrire un service Web Node.js à exécuter dans l'environnement standard App Engine. Pour en savoir plus sur l'environnement d'exécution Node.js et sur son fonctionnement, consultez la page Environnement d'exécution Node.js.

Avant de commencer

Points essentiels

  • Vous pouvez utiliser les dépendances en les répertoriant dans votre fichier package.json. Pour en savoir plus, consultez la page Spécifier des dépendances.
  • App Engine démarre votre application en exécutant npm start.
  • Votre serveur doit écouter le port spécifié par process.env.PORT, une variable d'environnement définie par l'environnement d'exécution App Engine.
  • Vous avez besoin d'un fichier app.yaml pour déployer votre service sur App Engine.

Créer un serveur pour écouter les requêtes HTTP

Le serveur HTTP est au cœur de votre service Web. L'exemple de code figurant dans ce guide gère les requêtes HTTP à l'aide du framework Express.js, mais vous êtes libre d'utiliser le framework Web de votre choix.

  1. Créez un dossier nommé my-nodejs-service pour votre service Node.js.

  2. Accédez au dossier de votre terminal et créez un fichier package.json en exécutant npm init.

  3. Exécutez la commande suivante afin d'ajouter Express comme dépendance :

    npm install express
    

    Vérifiez qu'Express apparaît dans le champ dependencies du fichier package.json. Exemple :

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. Ajoutez un script start au fichier package.json :

    "scripts": {
      "start": "node server.js"
    }
    
  5. Créez un fichier nommé server.js dans le même dossier et ajoutez le code suivant :

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      res.send('Hello from App Engine!');
    });
    
    // Listen to the App Engine-specified port, or 8080 otherwise
    const PORT = process.env.PORT || 8080;
    app.listen(PORT, () => {
      console.log(`Server listening on port ${PORT}...`);
    });

Il s'agit d'un serveur Web très basique : il répond à toutes les requêtes GET envoyées au chemin racine ('/') avec le texte "Hello from App Engine!" Notez les quatre dernières lignes, qui configurent le serveur pour écouter le port spécifié par process.env.PORT, une variable d'environnement définie par l'environnement d'exécution App Engine. Si le serveur n'est pas configuré pour écouter ce port, il ne recevra pas de requêtes.

Notez que si process.env.PORT n'est pas défini, le port 8080 est utilisé par défaut. Cela est nécessaire pour tester l'application localement, car la variable d'environnement process.env.PORT n'est pas définie pendant les exécutions locales. Elle n'est définie que lorsque l'application s'exécute sur App Engine. Vous pouvez employer le port de votre choix pour les tests, mais ce guide utilise le port 8080.

Exécuter le serveur localement

Pour exécuter le serveur localement :

  1. Exécutez npm start dans votre terminal. Cela exécutera le fichier server.js.

  2. Dans votre navigateur Web, accédez à l'URL http://localhost:8080.

Une page contenant le texte "Hello from App Engine!" doit s'afficher.

Créer le fichier app.yaml

Un fichier app.yaml spécifie les paramètres de l'environnement d'exécution de votre service App Engine. Le déploiement de ce dernier est impossible sans ce fichier.

  1. Dans votre dossier my-nodejs-service, créez un fichier appelé app.yaml.

  2. Ajoutez-y ce qui suit :

    runtime: nodejs20

    Il s'agit d'un fichier spécifiant une configuration minimale, qui indique à App Engine la version de l'environnement d'exécution Node.js. Le fichier app.yaml peut également spécifier des paramètres réseau, des paramètres de scaling, etc. Pour en savoir plus, consultez la documentation de référence sur app.yaml.

À ce stade, vous devriez disposer d'une structure de fichiers de ce type :

  my-nodejs-service/
  app.yaml
  package.json
  server.js

Étapes suivantes

Maintenant que vous avez créé un serveur Web Node.js simple, qui écoute le port approprié, et que vous avez spécifié l'environnement d'exécution dans un fichier app.yaml, vous êtes prêt à déployer votre service sur App Engine.

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances d'App Engine en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai d'App Engine sans frais