타입스크립트 환경을 설정하고 익스프레스 서버를 구동하기 위해 필요한 패키지들을 설치하자.
$ yarn add @types/express @types/node nodemon ts-node typescript --dev
$ yarn add express
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS",
"outDir": "./dist"
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules"]
}
{
"name": "ts-express",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"@types/express": "^4.17.7",
"@types/node": "^14.0.26",
"nodemon": "^2.0.4",
"ts-node": "^8.10.2",
"typescript": "^3.9.7"
},
"dependencies": {
"esm": "^3.2.25",
"express": "^4.17.1"
},
"scripts": {
"prestart": "tsc", // 먼저 js로 컴파일한 뒤에
"start": "nodemon --exec ts-node dist/www.js" // 컴파일된 파일을 실행한다.
}
}
app.ts
import * as express from "express";
const app: express.Application = express();
app.get(
"/",
(req: express.Request, res: express.Response, next: express.NextFunction) => {
res.send("hello typescript express!");
}
);
export default app;
www.ts
import app from "./app";
import {createServer} from "http";
const port: number = Number(process.env.PORT) || 3000;
const server = createServer(app);
server.listen(port, () => {
console.log(`${port}포트 서버 대기 중!`);
});
export default server;
이렇게 세팅하고 yarn start
를 입력하면 3000포트에서 서버가 시작됩니다!