Scrittura del servizio web con Node.js

Questa guida mostra come scrivere un servizio web Node.js da eseguire nell'ambiente standard di App Engine. Per saperne di più sul runtime Node.js e sul suo funzionamento, consulta l'articolo sull'ambiente di runtime Node.js.

Prima di iniziare

Punti chiave

  • Puoi utilizzare le dipendenze elencandole nel tuo file package.json. Per ulteriori informazioni, consulta Specifica delle dipendenze.
  • App Engine avvia l'applicazione eseguendo npm start.
  • Il server deve rimanere in ascolto della porta specificata da process.env.PORT, una variabile di ambiente impostata dal runtime di App Engine.
  • Hai bisogno di un file app.yaml per eseguire il deployment del servizio in App Engine.

Creazione di un server per l'ascolto delle richieste HTTP

Il cuore del tuo servizio web è il server HTTP. Il codice campione in questa guida utilizza il framework Express.js per gestire le richieste HTTP, ma puoi scegliere liberamente un framework web.

  1. Crea una nuova cartella denominata my-nodejs-service per il tuo servizio Node.js.

  2. Vai alla cartella nel terminale e crea un file package.json eseguendo npm init.

  3. Aggiungi Express come dipendenza eseguendo:

    npm install express
    

    Verifica che Express venga visualizzato nel campo dependencies del file package.json. Ecco un esempio:

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. Aggiungi uno script start al file package.json:

    "scripts": {
      "start": "node server.js"
    }
    
  5. Crea un file denominato server.js nella stessa cartella e aggiungi il seguente codice:

    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}...`);
    });

Questo è un server web molto semplice: risponde a tutte le richieste GET al percorso root ('/') con il testo "Ciao da App Engine!". Nota le ultime quattro righe, in cui il server è impostato per ascoltare la porta specificata da process.env.PORT, una variabile di ambiente impostata dal runtime di App Engine. Se il server non è impostato per l'ascolto di questa porta, non riceverà richieste.

Tieni presente che se process.env.PORT non è impostato, viene utilizzata la porta 8080 come predefinita. Questa operazione è necessaria per testare la tua app in locale, poiché process.env.PORT non viene impostato durante le esecuzioni locali, ma solo quando la tua app è in esecuzione su App Engine. Puoi utilizzare la porta che preferisci per i test, ma in questa guida viene usato 8080.

Esecuzione del server in locale

Per eseguire il server localmente:

  1. Esegui npm start nel terminale. Verrà eseguito il file server.js.

  2. Accedi a http://localhost:8080 nel browser web.

Dovresti visualizzare una pagina con il testo "Ciao da App Engine!".

Creazione del file app.yaml in corso...

Un file app.yaml specifica le impostazioni per l'ambiente di runtime del servizio App Engine. Il deployment del servizio non verrà eseguito senza questo file.

  1. Nella cartella my-nodejs-service, crea un file denominato app.yaml.

  2. Aggiungi i seguenti contenuti:

    runtime: nodejs20

    Si tratta di un file di configurazione minimo, che indica ad App Engine la versione del runtime Node.js. Il file app.yaml può anche specificare le impostazioni di rete, di scalabilità e altro ancora. Per maggiori informazioni, consulta la documentazione di riferimento di app.yaml.

A questo punto, dovresti avere una struttura del file simile alla seguente:

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

Passaggi successivi

Ora che hai creato un semplice server web Node.js che rimane in ascolto della porta corretta e hai specificato il runtime in un file app.yaml, puoi iniziare a eseguire il deployment del servizio su App Engine.

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni di App Engine in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova App Engine gratuitamente