Koa - Typescript Project 시작하는 방법
4777 단어 코아TypeORMTypeScriptNode.js
소개
업무로 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의 핸들링을 모두 보여줍니다. 고맙게 사용하겠습니다.
Reference
이 문제에 관하여(Koa - Typescript Project 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/theFirstPenguin/items/93519ae382501a6aa6af
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
샘플 복제
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의 핸들링을 모두 보여줍니다. 고맙게 사용하겠습니다.
Reference
이 문제에 관하여(Koa - Typescript Project 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/theFirstPenguin/items/93519ae382501a6aa6af
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Koa - Typescript Project 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/theFirstPenguin/items/93519ae382501a6aa6af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)