Koa - Typescript Project 시작하는 방법

소개



업무로 Koa 를 사용하게 되었으므로, Github 샘플 에 따라 공부해 갑니다.

Node - Koa - Typescript Project 시작하는 방법



샘플 복제


mkdir sample-pjt && cd sample-pjt
git clone https://github.com/javieraviles/node-typescript-koa-rest 
cd node-typescript-koa-rest
yarn

로컬로 개발할 때 미세 수정



SSL의 설명으로 쓰여진 대로, server.ts 의 미정정이 필요합니다.

server.ts
...

createConnection({
  type: 'postgres',
  url: config.databaseUrl,
  synchronize: true,
  logging: false,
  entities: config.dbEntitiesPath,
  ssl: config.dbsslconn, // if not development, will use SSL
  // ↓この中身をコメントアウトする
  extra: { 
    // ssl: {
    //   rejectUnauthorized: false, // Heroku uses self signed certificates
    // },
  },
})

...

또한 .example.env.env로 수정합니다.

DB 컨테이너 호스트



포트가 덮여 있으므로 postgres 앱을 실행하는 경우 컨테이너를 시작하기 전에 중지하십시오.
docker-compose up 

로컬 개발 시작


yarn watch-server

DB 동작 확인



우선 migration이 성공하고 있음을 알 수 있습니다.
docker-compose exec db psql -U user apidb

apidb=# \dt
       List of relations
 Schema | Name | Type  | Owner 
--------+------+-------+-------
 public | user | table | user
(1 row)

apidb=# select * from "user"; #ちゃんと"user"にしてくださいね。一応。
 id | name | email 
----+------+-------
(0 rows)
http://localhost:8080/로 이동하여 브라우저에서 확인할 수도 있습니다.


JWT 설정



설명에 표시된대로 Bearer 토큰(아래)을 설정하고 요청합니다.
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuYW1lIjoiSmF2aWVyIEF2aWxlcyIsImVtYWlsIjoiYXZpbGVzbG9wZXouamF2aWVyQGdtYWlsLmNvbSJ9.rgOobROftUYSWphkdNfxoN2cgKiqNXd4Km4oz6Ex4ng
https://jwt.io/#debugger-io 에서 토큰 내용을 볼 수도 있습니다.



POSTMAN에서의 동작 확인






Swagger에서 API 문서 보기


http://localhost:3000/swagger-json 에 API 문서가 출력됩니다.
이 엔드포인트는 기본 설정으로 위의 URL로 되어 있지만 src/protectedRoutes.ts 안에서 설정할 수 있습니다.


Swagger Editor 에 위의 URL을 로드하지 않으면 API 문서를 표시할 수 있습니다.



마지막으로



이 샘플 은 요청의 validation과 JWT의 핸들링을 모두 보여줍니다. 고맙게 사용하겠습니다.

좋은 웹페이지 즐겨찾기