Aggiornamento del servizio web

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

Questa sezione della guida mostra come scrivere, testare ed eseguire il deployment degli aggiornamenti al servizio web di esempio di cui hai eseguito il deployment nella sezione precedente, Deployment del servizio web.

Prima di iniziare

Se non hai già completato le sezioni precedenti di questa guida "Creazione di un'app", procedi nel seguente modo:

  1. Crea un progetto Google Cloud con un'app di App Engine.
  2. Scrivi un semplice servizio web Node.js.
  3. Esegui il deployment del servizio web su App Engine.

Aggiornamento del servizio web di esempio

Le seguenti sezioni aggiornano il servizio web di esempio con un modulo e un gestore che risponde quando un utente invia il modulo.

Creazione di un modulo per l'input utente

Per consentire a un utente di inviare dati al tuo server, utilizza un modulo HTML.

  1. Nella cartella my-nodejs-service, crea una cartella denominata views in cui archiviare i file HTML.

  2. Nella cartella views, crea un file denominato form.html e aggiungi il seguente codice:

    <!DOCTYPE html>
    <html>
      <head>
        <title>My App Engine App</title>
      </head>
      <body>
        <h2>Create a new post</h2>
        <form method="POST" action="/submit">
          <div>
            <input type="text" name="name" placeholder="Name">
          </div>
          <div>
            <textarea name="message" placeholder="Message"></textarea>
          </div>
          <div>
            <button type="submit">Submit</button>
          </div>
        </form>
      </body>
    </html>

Questo semplice modulo consente a un utente di inserire un nome e un messaggio da inviare al server. Invia i dati tramite una richiesta POST HTTP a /submit, come specificato dagli attributi method e action nell'elemento <form>.

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

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

Visualizzazione del modulo

  1. Aggiungi la seguente riga all'inizio del tuo file server.js per importare il modulo path:

    const path = require(`path`);
    
  2. Aggiungi il seguente gestore Express per mostrare il modulo quando un utente passa a /submit:

    app.get('/submit', (req, res) => {
      res.sendFile(path.join(__dirname, '/views/form.html'));
    });

Creazione di un gestore per i dati inviati

Quando un utente invia un messaggio al server, una richiesta POST con i dati viene inviata a /submit. Per leggere i dati dal corpo della richiesta, utilizza il middleware Express urlencoded e crea un nuovo gestore delle richieste.

  1. Imposta la tua app per l'utilizzo del middleware urlencoded Express:

    // This middleware is available in Express v4.16.0 onwards
    app.use(express.urlencoded({extended: true}));
  2. Aggiungi un gestore POST al file server.js per leggere i dati:

    app.post('/submit', (req, res) => {
      console.log({
        name: req.body.name,
        message: req.body.message,
      });
      res.send('Thanks for your message!');
    });

Questo gestore di esempio registra il nome e il messaggio dell'utente nella console, ma potresti anche eseguire operazioni sui dati o archiviarli in un database.

Test del modulo in locale

Testa il nuovo modulo localmente prima di eseguire il deployment delle modifiche.

  1. Avvia il server Node.js:

    npm start
    
  2. Visualizza il modulo all'indirizzo http://localhost:8080/submit.

    Invia un messaggio con il modulo. Il tuo nome e il tuo messaggio dovrebbero essere visualizzati nel terminale.

Deployment delle modifiche

Quando esegui il deployment di un aggiornamento, viene creata una nuova versione del servizio predefinito e il traffico viene instradato automaticamente alla versione più recente. Per eseguire il deployment:

  1. Dalla cartella my-nodejs-service, esegui questo comando:

    gcloud app deploy
    

    Questo è lo stesso comando che hai imparato in Deployment del servizio web.

  2. Verifica che nella console Google Cloud sia elencata una nuova versione:

    Visualizza versioni

    Dovresti vedere due versioni corrispondenti al deployment precedente e a quello attuale.

Dopo il deployment, il nuovo modulo è accessibile all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com/submit. Usala per inviare uno o due messaggi.

Se non ti serve più la versione precedente, puoi eliminarla dalla pagina delle versioni nella console Google Cloud.

Passaggi successivi

Ora che l'app ha un modulo per l'invio dei dati da parte degli utenti, scopri come visualizzare i log dell'applicazione nella console Google Cloud.