Actualizar un servicio web

ID de región

El REGION_ID es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.

Más información sobre los IDs de región

En esta sección de la guía se muestra cómo escribir, probar y desplegar actualizaciones en el servicio web de ejemplo que desplegó en la sección anterior, Desplegar su servicio web.

Antes de empezar

Si aún no has completado las secciones anteriores de esta guía "Crear una aplicación", haz lo siguiente:

  1. Crea un proyecto Google Cloud con una aplicación de App Engine.
  2. Escribe un servicio web sencillo de Node.js.
  3. Despliega el servicio web en App Engine.

Actualizar el servicio web de ejemplo

En las siguientes secciones, se actualiza el servicio web de ejemplo con un formulario y un controlador que responde cuando un usuario envía el formulario.

Crear un formulario para introducir datos de usuario

Para permitir que un usuario envíe datos a tu servidor, usa un formulario HTML.

  1. En la carpeta my-nodejs-service, crea una carpeta llamada views para almacenar tus archivos HTML.

  2. En la carpeta views, crea un archivo llamado form.html y añade el siguiente código:

    <!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>

Este sencillo formulario permite a un usuario introducir un nombre y un mensaje para enviarlo al servidor. Envía los datos a través de una solicitud HTTP POST a /submit, tal como se especifica en los atributos method y action del elemento <form>.

En este punto, deberías tener una estructura de archivos como la siguiente:

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

Mostrar el formulario

  1. Añade la siguiente línea a la parte superior del archivo server.js para importar el módulo path:

    const path = require(`path`);
    
  2. Añade el siguiente controlador Express para mostrar el formulario cuando un usuario vaya a /submit:

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

Crear un controlador para los datos enviados

Cuando un usuario envía un mensaje al servidor, se envía una solicitud POST con los datos a /submit. Para leer los datos del cuerpo de la solicitud, usa el middleware de Express urlencoded y crea un nuevo controlador de solicitudes.

  1. Configura tu aplicación para que use el middleware Express urlencoded:

    // This middleware is available in Express v4.16.0 onwards
    app.use(express.urlencoded({extended: true}));
  2. Añade un controlador POST a tu archivo server.js para leer los datos:

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

Este controlador de ejemplo registra el nombre y el mensaje del usuario en la consola, pero también puedes realizar operaciones con los datos o almacenarlos en una base de datos.

Probar el formulario de forma local

Prueba el nuevo formulario de forma local antes de implementar los cambios.

  1. Inicia tu servidor Node.js:

    npm start
    
  2. Consulta tu formulario en http://localhost:8080/submit.

    Envía un mensaje con el formulario. Deberías ver tu nombre y tu mensaje en tu terminal.

Implementar los cambios

Cuando despliega una actualización, se crea una nueva versión de su servicio predeterminado y el tráfico se dirige automáticamente a la versión más reciente. Para desplegarla:

  1. En la carpeta my-nodejs-service, ejecuta el siguiente comando:

    gcloud app deploy
    

    Es el mismo comando que has aprendido en Implementar tu servicio web.

  2. Confirma que aparece una nueva versión en la Google Cloud consola:

    Ver versiones

    Deberían aparecer dos versiones correspondientes a la implementación anterior y a la actual.

Una vez que lo hayas implementado, podrás acceder a tu nuevo formulario en https://PROJECT_ID.REGION_ID.r.appspot.com/submit. Úsala para enviar uno o dos mensajes.

Si ya no necesitas la versión anterior, puedes eliminarla de la página de versiones de la consola Google Cloud .

Pasos siguientes

Ahora que tu aplicación tiene un formulario para que los usuarios envíen datos, consulta cómo ver los registros de tu aplicación en la Google Cloud consola.