웹 서비스의 핵심은 HTTP 서버입니다. 이 가이드의 샘플 코드는 Express.js 프레임워크를 사용하여 HTTP 요청을 처리하지만 원하는 웹 프레임워크를 사용할 수 있습니다.
Node.js 서비스를 위한 my-nodejs-service라는 새 폴더를 만듭니다.
터미널에서 폴더로 이동하고 npm init을 실행하여 package.json 파일을 만듭니다.
다음을 실행하여 Express를 종속 항목으로 추가합니다.
npminstallexpress
package.json 파일의 dependencies 필드에 Express가 표시되는지 확인합니다. 예를 들면 다음과 같습니다.
{..."dependencies":{"express":"^4.16.3"}...}
start 스크립트를 package.json 파일에 추가합니다.
"scripts":{"start":"node server.js"}
같은 폴더에 server.js라는 파일을 만들고 다음 코드를 추가합니다.
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}...`);});
이는 매우 기본적인 웹 서버입니다. 루트 경로('/')에 대한 모든 GET 요청에 'Hello from App Engine!' 텍스트로 응답합니다. 위 코드에서 마지막 4줄을 보면 서버가 App Engine 런타임에 의해 설정되는 환경 변수인 process.env.PORT로 지정된 포트를 리슨하도록 설정되었습니다. 서버가 이 포트에 리슨하도록 설정되지 않으면 요청을 수신하지 않습니다.
process.env.PORT가 설정되지 않으면 포트 8080이 기본값으로 사용됩니다. 로컬에서 실행되는 동안 process.env.PORT가 설정되지 않으므로(앱이 App Engine에서 실행되는 경우에만 설정됨), 로컬에서 앱을 테스트해야 합니다. 테스트용으로 선호하는 포트를 사용할 수 있지만 이 가이드는 8080을 사용합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 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)"]]