Aggiornare il servizio web

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province 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 del servizio web di esempio di cui hai eseguito il deployment nella sezione precedente, Eseguire il deployment del servizio web.

Prima di iniziare

Se non hai ancora completato le sezioni precedenti di questa guida "Creazione di un'app", segui questi passaggi:

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

Aggiorna il servizio web di esempio

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

Creare 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 per 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 dell'elemento <form>.

A questo punto, dovresti avere una struttura di file come la seguente:

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

Visualizza il modulo

  1. Aggiungi la seguente riga all'inizio del 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 visita /submit:

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

Crea un gestore per i dati inviati

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

  1. Imposta l'app in modo che utilizzi il 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 puoi anche eseguire operazioni sui dati o archiviarli in un database.

Testa il modulo localmente

Testa il nuovo modulo localmente prima di implementare le modifiche.

  1. Avvia il server Node.js:

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

    Invia un messaggio con il modulo. Dovresti vedere il tuo nome e il messaggio nel terminale.

Esegui il deployment delle modifiche

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

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

    gcloud app deploy
    

    Si tratta dello stesso comando che hai imparato in Eseguire il deployment del servizio web.

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

    Visualizza le versioni

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

Dopo il deployment, il nuovo modulo è accessibile all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com/submit. Utilizzalo per inviare un paio di messaggi.

Se non hai più bisogno della versione precedente, puoi eliminarla dalla pagina delle versioni nella console Google Cloud.

Passaggi successivi

Ora che la tua app ha un modulo tramite il quale gli utenti possono inviare dati, scopri come visualizzare i log dell'applicazione nella console Google Cloud.