타입스크립트 서버 라우터 만들기
이번에는 서버에 라우터를 만들어 주자.
src 폴더에 routes라는 폴더를 만들고 index.ts 파일을 만든다.
이 인덱스 파일에 각각의 콘트롤러를 임포트하고 하나의 파일에서 연결해 줄 생각이다.
import express from "express";
import * as postController from "../controllers/postController";
const router = express.Router();
router.get("/posts", postController.index);
export default router;
이런 식의 구조를 가진다. 이렇게 하나의 파일에서 루트를 관리해 주면 한 번에 사용하는 루트들을 파악할 수 있어서 편리하다. (라라벨로 치면 app.php같은 느낌이다.)
루트 폴더에 controllers 라는 폴더를 만들고 postController.ts 파일을 만들어 준다.
export async function index(req: Request, res: Response) {
const posts = [{id: 1, title: 'ts server', content: 'server structure'}];
res.json({ data: posts });
}
index 루트의 예시를 만들어 봤다. 이런 식으로 루트를 하나씩 export 해서 index.ts 파일에서 연결해서 사용하면 된다.
이렇게 만든 라우터를 app.ts 에 연결해 주자.
// app.ts
import indexRouter from "./routes";
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// 이 부분을 추가해서 연결한다.
app.use("/api", indexRouter);
기본적으로 api 라는 주소가 붙도록 해놨다.
이제 서버를 키고 (npm run dev) 127.0.0.1:8080/api/posts로 접속해 보자.
이런 식의 구조를 가지고 post, put, delete 등의 method를 가진 CRUD를 만들어서 사용하면 된다. (CRUD : Create Read Update Delete)
이렇게 하면 당신만의 타입스크립트 서버가 완성됐다. 참 쉽지 않나요?
다음 시간에는 DB를 연결해 보도록 하자.
공유하기
조회수 : 683