Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta guía, se muestra cómo escribir un servicio web Node.js para ejecutarlo en el entorno estándar de App Engine. Para obtener más información sobre el entorno de ejecución de Node.js y cómo funciona, consulta Entorno de ejecución de Node.js.
Puedes usar dependencias. Para ello, inclúyelas en una lista en el archivo package.json. Consulta Especifica dependencias para obtener más información.
App Engine inicia la aplicación mediante la ejecución de npm start.
El servidor debe detectar el puerto que especifica process.env.PORT, una variable de entorno que establece el entorno de ejecución de App Engine.
Necesitas un archivo app.yaml para implementar el servicio en App Engine.
Crea un servidor que detecte las solicitudes HTTP
El núcleo de tu servicio web es el servidor HTTP. En el código de muestra de esta guía,
se usa el framework Express.js
para controlar las solicitudes HTTP, pero puedes usar el framework web
que desees.
Crea una carpeta nueva llamada my-nodejs-service para el servicio de Node.js.
Para navegar a la carpeta en tu terminal y crear un archivo package.json, ejecuta npm init.
Ejecuta el siguiente comando para agregar Express como una dependencia:
npminstallexpress
Confirma que Express aparezca en el campo dependencies del archivo package.json. Por ejemplo:
{..."dependencies":{"express":"^4.16.3"}...}
Agrega una secuencia de comandos start al archivo package.json:
"scripts":{"start":"node server.js"}
Crea un archivo llamado server.js en la misma carpeta y agrega el siguiente código:
constexpress=require('express');constapp=express();app.get('/',(req,res)=>{res.send('Hello from App Engine!');});// Listen to the App Engine-specified port, or 8080 otherwiseconstPORT=process.env.PORT||8080;app.listen(PORT,()=>{console.log(`Server listening on port ${PORT}...`);});
Este es un servidor web muy básico; responde a todas las solicitudes GET en la ruta raíz ('/') con el texto “Hello from App Engine!” Ten en cuenta las últimas cuatro líneas en las que el servidor se configura para detectar el puerto que especifica process.env.PORT, una variable de entorno que establece el entorno de ejecución de App Engine. Si tu servidor no está configurado para detectar este puerto, no recibirá solicitudes.
Ten en cuenta que si process.env.PORT no está configurado, se usa el puerto 8080 como predeterminado. Esto es necesario para probar la app de manera local, ya que process.env.PORT no se configura durante las ejecuciones locales, solo lo hace cuando la app se ejecuta en App Engine. Puedes usar el puerto que prefieras para realizar las pruebas, pero en esta guía se emplea 8080.
Ejecuta el servidor de manera local
Para ejecutar el servidor de manera local, haz lo siguiente:
Ejecuta npm start en tu terminal. Esto ejecutará el archivo server.js.
Debes ver una página con el texto “Hello from App Engine!”.
Crea el archivo app.yaml
Un archivo app.yaml especifica la configuración para el entorno de ejecución del servicio de App Engine. Tu servicio no se implementará sin este archivo.
En la carpeta my-nodejs-service, crea un archivo llamado app.yaml.
Agrega los contenidos a continuación:
runtime:nodejs20
Este es un archivo de configuración mínimo que le indica a App Engine la versión del entorno de ejecución de Node.js. El archivo app.yaml también puede especificar la configuración de red, la configuración de escalamiento y más. Para obtener más información, consulta la referencia de app.yaml.
En este punto, debes tener una estructura de archivos como la que se muestra a continuación:
Ahora que ya creaste un servidor web de Node.js sencillo que escucha en el puerto correcto y que especificaste el entorno de ejecución en un archivo app.yaml, estás listo para implementar tu servicio en App Engine.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el
rendimiento de App Engine en situaciones
reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[[["\u003cp\u003eThis guide details how to create a Node.js web service for the App Engine standard environment, using the \u003ccode\u003epackage.json\u003c/code\u003e file for dependencies and \u003ccode\u003eapp.yaml\u003c/code\u003e for deployment configurations.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine applications start via the \u003ccode\u003enpm start\u003c/code\u003e command, which you must configure in the \u003ccode\u003epackage.json\u003c/code\u003e file, typically to run your main server file.\u003c/p\u003e\n"],["\u003cp\u003eYour Node.js server must listen to the port specified by the \u003ccode\u003eprocess.env.PORT\u003c/code\u003e environment variable provided by App Engine to receive external requests.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eapp.yaml\u003c/code\u003e file is essential for deploying your service to App Engine, as it defines the runtime environment, such as the Node.js version.\u003c/p\u003e\n"],["\u003cp\u003eTo run and test the application locally, use \u003ccode\u003enpm start\u003c/code\u003e and visit \u003ccode\u003ehttp://localhost:8080\u003c/code\u003e in your browser, ensuring port 8080 is used as a fallback when \u003ccode\u003eprocess.env.PORT\u003c/code\u003e is not set.\u003c/p\u003e\n"]]],[],null,["# Write your web service with Node.js\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\n| **Note:** If you are deploying a new Node.js web service to Google Cloud, we recommend getting started with [Cloud Run](/run/docs/quickstarts/build-and-deploy/deploy-nodejs-service).\n\nThis guide shows how to write a Node.js web service to\nrun in the App Engine standard environment. To learn more about\nthe Node.js runtime and how it works, see\n[Node.js Runtime Environment](/appengine/docs/standard/nodejs/runtime).\n\nBefore you begin\n----------------\n\n- [Install Node.js LTS](https://nodejs.org/en/download/).\n\nKey points\n----------\n\n- You can use dependencies by listing them in your [`package.json`](https://docs.npmjs.com/files/package.json) file. See [Specifying Dependencies](/appengine/docs/standard/nodejs/specifying-dependencies) for more information.\n- App Engine starts your application by running `npm start`.\n- Your server must listen to the port specified by the `process.env.PORT`, an [environment variable](/appengine/docs/standard/nodejs/runtime#environment_variables) set by the App Engine runtime.\n- You need an [`app.yaml`](/appengine/docs/standard/nodejs/configuring-your-app-with-app-yaml) file to deploy your service to App Engine.\n\nCreate a server to listen for HTTP requests\n-------------------------------------------\n\nThe core of your web service is the HTTP server. The sample code in this guide\nuses the [Express.js](https://expressjs.com/)\nframework to handle HTTP requests, but you are free to use a web framework of\nyour choice.\n\n1. Create a new folder called `my-nodejs-service` for your Node.js\n service.\n\n2. Navigate to the folder in your terminal, and create a `package.json` file\n by running `npm init`.\n\n3. Add Express as a dependency by running:\n\n npm install express\n\n Confirm that Express appears in your `package.json` file's `dependencies`\n field. Here's an example: \n\n {\n ...\n \"dependencies\": {\n \"express\": \"^4.16.3\"\n }\n ...\n }\n\n4. Add a `start` script to your `package.json` file:\n\n \"scripts\": {\n \"start\": \"node server.js\"\n }\n\n5. Create a file called `server.js` in the same folder and add the following\n code:\n\n const express = require('express');\n const app = express();\n\n app.get('/', (req, res) =\u003e {\n res.send('Hello from App Engine!');\n });\n\n // Listen to the App Engine-specified port, or 8080 otherwise\n const PORT = process.env.PORT || 8080;\n app.listen(PORT, () =\u003e {\n console.log(`Server listening on port ${PORT}...`);\n });\n\nThis is a very basic web server - it responds to all `GET` requests to the root\npath (`'/'`) with the text \"Hello from App Engine!\" Note the last four lines,\nwhere the server is set to listen to the port specified by `process.env.PORT`,\nan [environment variable](/appengine/docs/standard/nodejs/runtime#environment_variables)\nset by the App Engine runtime. If your server isn't set to listen to\nthis port, it will not receive requests.\n\nNotice that if `process.env.PORT` is not set, port `8080` is used as\na default. This is necessary for testing your app locally, because\n`process.env.PORT` doesn't get set during local runs - it is only set when\nyour app is running on App Engine. You can use whichever port\nyou prefer for testing, but this guide uses `8080`.\n\nRun the server locally\n----------------------\n\nTo run the server locally:\n\n1. Run `npm start` in your terminal. This will run your `server.js` file.\n\n2. Point your web browser to \u003chttp://localhost:8080\u003e.\n\nYou should see a page with the text \"Hello from App Engine!\"\n\nCreate the `app.yaml` file\n--------------------------\n\nAn `app.yaml` file specifies settings for your App Engine service's\nruntime environment. Your service will not deploy without this file.\n\n1. In your `my-nodejs-service` folder, create a file called\n `app.yaml`.\n\n2. Add the following contents:\n\n runtime: nodejs20\n\n This is a minimal configuration file, indicating to App Engine the\n version of the Node.js runtime. The `app.yaml` file can also specify network\n settings, scaling settings, and more. For more information, see the\n [`app.yaml` reference](/appengine/docs/standard/reference/app-yaml).\n\nAt this point, you should have a file structure like the following: \n\n my-nodejs-service/\n app.yaml\n package.json\n server.js\n\nNext steps\n----------\n\nNow that you've created a simple Node.js web server that listens to the correct\nport and you've specified the runtime in an `app.yaml` file, you're ready to\n[deploy your service on App Engine](/appengine/docs/standard/nodejs/building-app/deploying-web-service).\n\nTry it for yourself\n-------------------\n\n\nIf you're new to Google Cloud, create an account to evaluate how\nApp Engine performs in real-world\nscenarios. New customers also get $300 in free credits to run, test, and\ndeploy workloads.\n[Try App Engine free](https://console.cloud.google.com/freetrial)"]]