Escribir un servicio web con Node.js

En esta guía se muestra cómo escribir un servicio web de Node.js para que se ejecute en el entorno estándar de App Engine. Para obtener más información sobre el tiempo de ejecución de Node.js y cómo funciona, consulta Entorno de tiempo de ejecución de Node.js.

Antes de empezar

Puntos clave

  • Puedes usar las dependencias incluyéndolas en el archivo package.json. Consulta más información en Especificar dependencias.
  • App Engine inicia tu aplicación ejecutando npm start.
  • Tu servidor debe usar el puerto especificado por process.env.PORT, una variable de entorno definida por el tiempo de ejecución de App Engine.
  • Necesitas un archivo app.yaml para desplegar tu servicio en App Engine.

Crear un servidor para escuchar solicitudes HTTP

El núcleo de tu servicio web es el servidor HTTP. El código de ejemplo de esta guía usa el framework Express.js para gestionar las solicitudes HTTP, pero puedes usar el framework web que quieras.

  1. Crea una carpeta llamada my-nodejs-service para tu servicio Node.js.

  2. Ve a la carpeta en tu terminal y crea un archivo package.json ejecutando npm init.

  3. Añade Express como dependencia ejecutando el siguiente comando:

    npm install express
    

    Confirma que Express aparece en el campo dependencies del archivo package.json. Veamos un ejemplo:

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. Añade una secuencia de comandos start a tu archivo package.json:

    "scripts": {
      "start": "node server.js"
    }
    
  5. Crea un archivo llamado server.js en la misma carpeta y añade el siguiente código:

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

Se trata de un servidor web muy básico que responde a todas las solicitudes GET a la ruta raíz ('/') con el texto "Hello from App Engine!". Fíjate en las cuatro últimas líneas, donde se define que el servidor debe usar el puerto especificado por process.env.PORT, una variable de entorno definida por el tiempo de ejecución de App Engine. Si tu servidor no está configurado para escuchar este puerto, no recibirá solicitudes.

Ten en cuenta que, si process.env.PORT no se define, se usará el puerto 8080 de forma predeterminada. Esto es necesario para probar tu aplicación de forma local, ya que process.env.PORT no se define durante las ejecuciones locales, sino solo cuando tu aplicación se ejecuta en App Engine. Puedes usar el puerto que prefieras para hacer pruebas, pero en esta guía se usa 8080.

Ejecutar el servidor de forma local

Para ejecutar el servidor de forma local, haz lo siguiente:

  1. Ejecuta npm start en tu terminal. Se ejecutará el archivo server.js.

  2. Dirige tu navegador web a http://localhost:8080.

Debería aparecer una página con el texto "Hello from App Engine!".

Crea el archivo app.yaml

Un archivo app.yaml especifica los ajustes del entorno de ejecución de tu servicio de App Engine. El servicio no se desplegará sin este archivo.

  1. En la carpeta my-nodejs-service, crea un archivo llamado app.yaml.

  2. Añade el siguiente contenido:

    runtime: nodejs20

    Este es un archivo de configuración mínimo que indica a App Engine la versión del entorno de ejecución de Node.js. El archivo app.yaml también puede especificar ajustes de red, ajustes de escalado y más. Para obtener más información, consulta la referencia de app.yaml.

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

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

Pasos siguientes

Ahora que has creado un servidor web Node.js sencillo que escucha el puerto correcto y has especificado el tiempo de ejecución en un archivo app.yaml, ya puedes desplegar tu servicio en App Engine.

Pruébalo

Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de App Engine en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.

Probar App Engine gratis