Express 설치 — 시작하기
Express 설치 — 시작하기
Express를 쓰려면 먼저 Node.js가 설치되어 있어야 해요. Node.js 18 이상이 필요해요. 그다음 앱 디렉터리를 만들고, npm init으로 package.json을 만들고, npm install express로 Express를 설치하면 돼요. 아주 간단한 세 단계예요.
Node.js 확인과 디렉터리 생성
먼저 Node.js 18 이상이 설치되어 있는지 확인해요. 그다음 애플리케이션을 담을 디렉터리를 만들고 이동해요.
mkdir myapp
cd myapp
package.json 만들기
npm init 명령으로 앱의 package.json 파일을 만들어요. 이 명령은 앱 이름과 버전 같은 여러 항목을 물어봐요. 지금은 대부분 RETURN을 눌러 기본값을 받아들여도 돼요.
npm init
한 가지 예외로 entry point를 물어볼 때 app.js(또는 메인 파일로 원하는 이름)를 입력해요. index.js로 하고 싶다면 RETURN을 눌러 기본값을 받아들이면 돼요.
entry point: (index.js)
Express 설치
Express를 myapp 디렉터리에 설치하고 dependencies 목록에 저장해요.
npm install express
임시로만 설치하고 dependencies 목록에 추가하지 않으려면 --no-save 플래그를 써요.
npm install express --no-save
TypeScript로 쓰기
Express는 자바스크립트로 작성되어 있고 자체 타입 정의를 포함하지 않아요. TypeScript로 쓰려면 TypeScript와 함께 커뮤니티가 관리하는 Express·Node.js 타입(@types/express, @types/node)을 개발 의존성으로 설치해요.
npm install --save-dev typescript @types/express @types/node
일부 미들웨어는 자체 타입 정의가 없어요. 공식 미들웨어 패키지가 TypeScript에서 untyped로 보고되면, 그 타입도 dev dependency로 설치해야 해요(예: cors와 함께 @types/cors).
tsconfig.json을 추가해요. 이 옵션들은 Node.js가 TypeScript를 실행하는 방식과 일치하고, Node가 제거할 수 없는 문법(예: enum, namespace, parameter properties)을 컴파일러가 거부하게 해요.
{
"compilerOptions": {
"target": "esnext",
"module": "nodenext",
"rewriteRelativeImportExtensions": true,
"erasableSyntaxOnly": true,
"verbatimModuleSyntax": true,
"noEmit": true,
"strict": true,
"skipLibCheck": true
}
}
애플리케이션을 TypeScript로 작성하면서 request·response 객체에 주석을 달아요.
import express, { type Express, type Request, type Response } from 'express';
const app: Express = express();
app.get('/', (req: Request, res: Response) => {
res.send('Hello World!');
});
app.listen(3000);
모든 것에 주석을 달 필요는 없어요. 핸들러를 라우트 메서드나 app.use()에 직접 넘기면 Express가 req, res, next의 타입을 추론하고, 경로에서 라우트 파라미터도 추론해요. 그래서 app.get('/users/:id', ...)에서 req.params.id는 string이 돼요. TypeScript가 추론할 맥락이 없는 곳, 즉 에러 핸들링 미들웨어(그 (err, req, res, next) 시그니처는 추론되지 않아요)와 라우트와 분리해 정의한 핸들러에만 명시적 타입을 추가해요. 그 경우 파라미터에 주석을 달거나 함수 전체를 RequestHandler·ErrorRequestHandler로 타입 지정해요.
파일을 Node.js로 직접 실행하면 TypeScript 타입을 제거하고 빌드 단계 없이 결과를 돌려줘요.
node src/app.ts
.ts 파일을 직접 실행하려면 Node.js >= 22.18.0(또는 v23 라인은 >= 23.6.0)과 TypeScript >= 5.8이 필요해요. Node가 타입을 제거하지만 타입 체크는 하지 않으니, 프로젝트 타입 체크는 npx tsc를 실행해요.
정리하면, Express 설치는 Node.js 18+ → npm init → npm install express의 세 단계예요. TypeScript로 쓴다면 @types/express·@types/node를 추가하고 Node.js의 네이티브 TypeScript 실행을 활용하면 빌드 없이 돌릴 수 있어요.