Aggiornare il servizio web

ID regione

L'REGION_ID è un codice abbreviato che Google assegna 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 "Creare un'app", procedi nel seguente modo:

  1. Crea un Google Cloud progetto 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.

Crea un modulo per input utente

Per consentire a un utente di inviare dati al 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 HTTP POST a /submit, come specificato dagli attributi method e action dell'elemento <form>.

A questo punto, dovresti avere una struttura di file simile alla 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 naviga su /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 urlencoded di Express e crea un nuovo gestore delle richieste.

  1. Configura l'app in modo che utilizzi il middleware urlencoded di 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 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. Dovresti vedere il tuo nome e il tuo 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 automaticamente indirizzato all'ultima versione. Per eseguire il deployment:

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

    gcloud app deploy
    

    Questo è lo stesso comando che hai imparato in Eseguire il deployment del servizio web.

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

    Visualizza le 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. Utilizzalo per inviare uno o due messaggi.

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

Passaggi successivi

Ora che la tua app ha un modulo per consentire agli utenti di inviare dati, scopri come visualizzare i log dell'applicazione nella Google Cloud console.