Node.js API 스타터 키트는 Google Cloud Functions, AWS Lambda, Azure Functions 등과 같은 서버리스 인프라에 최적화 된 Node.js Backend Application을 구축하기위한 프로젝트 템플릿입니다. 프론트 엔드 앱의 API 서버로 사용하십시오.
local , dev , test 및 prod 환경에 대해 사전 구성이 프로젝트는 Node.js API 스타터 키트로 부트 스트랩되었습니다. 도움을 받으려면 Discord 채널에 가입하십시오.
├── .build - 컴파일 및 번들 출력 (클라우드 기능 당)
├── .vscode - 코드 스 니펫, 권장 확장자 등을 포함한 VSCODE 설정.
├── - graphql.js api 사용하여 API 요청을 처리하기위한 클라우드 기능
├── auth - 인증 및 세션 미들웨어
├── core - 일반적인 응용 프로그램 모듈 (이메일, 로깅 등)
├── - Knex db 사용하는 PostgreSQL 용 데이터베이스 클라이언트
├── emails
├── env - local , dev , test 및 prod 의 환경 변수
├── migrations - 데이터베이스 스키마 마이그레이션 (클라우드 SQL, KNEX)
├── scripts 배포 스크립트, REPL SHELL 등
├── test - 테스트 - 단위 테스트 및 벤치 마크
├── views - 핸들 바를 사용하는 HTML 템플릿
└── ... - worker , notifications 등과 같은 더 많은 클라우드 기능을 추가하십시오.
git clone -o seed https://github.com/kriasoft/node-starter-kit.git .local , dev , test 및 prod 환경 ( ./env )의 환경 변수를 업데이트하십시오.yarn installyarn db:createyarn start 은 http : // localhost : 8080에서 사용할 수있게됩니다. APP_ENV 환경 변수를 사용하여 다양한 환경에 대한 스크립트를 실행하십시오.
$ APP_ENV=test yarn db:migrate
$ APP_ENV=test yarn start
중요 : VSCODE가 TypeScript 및 Eslint의 작업 공간 버전을 사용하고 있는지 확인하십시오.
yarn start - http://localhost:8080 에서 개발 모드에서 앱을 시작합니다.yarn build - 배포를위한 앱을 컴파일하고 번들로yarn lint - eslint를 사용하여 코드를 확인하십시오yarn tsc - TypeScript 컴파일러를 사용하여 코드를 유효성을 유지하십시오yarn test - 농담으로 단위 테스트를 실행합니다yarn repl - Knex Repl Shell을 사용하여 데이터베이스에 연결yarn psql - Postgresql CLI를 사용하여 데이터베이스에 연결yarn db:create - 새 데이터베이스를 만듭니다yarn db:version - 데이터베이스의 현재 버전을 확인하십시오.yarn db:migrate - 데이터베이스 스키마를 최신 버전으로 마이그레이션yarn db:rollback - 롤백 최신 마이그레이션yarn db:seed - 샘플 / 참조 데이터가있는 종자 데이터베이스yarn db:reset -최신 DB 스키마 마이그레이션 파일을 다시 적용하십시오.yarn update-types -데이터베이스 스키마에서 강력하게 입력 된 데이터 모델을 생성합니다. 선택적 으로이 스크립트를 실행하기 전에 APP_ENV local (기본값), dev , test 또는 prod 로 설정하십시오.
앱에 활성화되어야하는 각 타사 신분 공급자에 대해 종종 클라이언트 ID/Secret라고하는 응용 프로그램 자격 증명을 얻어야합니다.
http://localhost/auth/google/return 사용하여 Oauth 2.0 클라이언트 생성 콜백 URL로 반환GOOGLE_CLIENT_ID , GOOGLE_CLIENT_SECRET 환경 변수를 업데이트 ./env/.env.* . 거기에서 http://localhost:8080/auth/google (또는 팝업 창에서 열기)을 방문하면 Google을 통해 로그인 흐름이 시작됩니다.
http://localhost/auth/facebook/return 추가FACEBOOK_APP_ID 에 복사하여 붙여 넣으십시오 env/.env.* FACEBOOK_APP_SECRET 변수가 필요한 각 환경에 대한 파일* 파일에 있습니다. 거기에서 http://localhost:8080/auth/facebook (또는 팝업 창에서 열기)을 방문하면 Facebook을 통해 로그인 흐름이 시작됩니다.
배포 스크립트 ( yarn deploy )는 여기에서 다운로드 할 수있는 gcloud (Google Cloud) 도구에 의존합니다. CI/CD 워크 플로의 경우 이와 같은 도커 이미지가 필요할 수 있습니다.
gcloud auth login - Google Cloud SDK (CLI) 도구를 승인하여 Google 계정을 사용할 수 있습니다.
프로덕션 example 및 테스트 / QA 환경에 대한 example-test 와 같은 ID를 사용하여 앱 용 새로운 GCP 프로젝트를 만듭니다. 클라우드 빌드 API 및 클라우드 기능 API가 GCP 프로젝트 설정에서 활성화되어 있는지 확인하십시오.
앱을 배포 해야하는 동일한 영역에서 클라우드 SQL 데이터베이스 인스턴스를 만듭니다. 0.6GB RAM이있는 Cloud SQL의 마이크로 인스턴스를 사용하면 테스트 및 트래픽 웹 사이트가 적을 수 있습니다.
GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_REGION , PGDATABASE , PGUSER 및 기타 환경 변수가 대상 배포 환경 (예 : /env/.env + /env/.env.prod )에 맞게 올바르게 설정되어 있는지 확인하십시오.
마지막으로, 실행하여 앱을 컴파일하고 배포하십시오.
yarn build - 앱을 .build 폴더로 컴파일합니다.APP_ENV=<env> yarn db:migrate - 데이터베이스 (스키마)를 최신 버전으로 마이그레이션합니다.APP_ENV=<env> yarn deploy - 앱을 Google Cloud Functions (GCF)에 배포합니다. 여기서 <env> 는 대상 환경, 예를 들어 APP_ENV=prod yarn deploy .
yarn set version latest - 최신 버전에 범프 원사yarn upgrade-interactive -업데이트 node.js 모듈 (종속성)yarn pnpify --sdk vscode -vscode의 intipection, eslint 및 더 예쁜 설정 누구나 모든 사람이 기여할 수 있습니다. 도움이 필요한 개방형 문제 목록을 확인하여 시작하십시오. 그러나 참여하기로 결정하면 잠시 시간을내어 가이드 라인을 검토하십시오.
Copyright © 2016-Present Kriasoft. 이 소스 코드는 라이센스 파일에있는 MIT 라이센스에 따라 라이센스가 부여됩니다.
Konstantin Tarkus (@koistya, 블로그) 및 기고자로 만들어졌습니다.