node.js APIスターターキットは、Googleクラウド関数、AWSラムダ、Azure関数などのサーバーレスインフラストラクチャ向けに最適化されたNode.jsバックエンドアプリケーションを構築するためのプロジェクトテンプレートです。フロントエンドアプリのAPIサーバーとして使用します。
local 、 dev 、 test 、およびprod環境のために事前に構成されていますこのプロジェクトは、node.js APIスターターキットでブートストラップされました。必ず私たちのDiscordチャンネルに参加してください。
├── .buildビルド - コンパイルされてバンドルされた出力(クラウド関数ごと)
├── - .vscode - コードスニペット、推奨拡張機能などを含むvscode設定。
├── api - graphql.jsを使用してAPIリクエストを処理するためのクラウド関数├── - 認証とセッションのauth
├── )- core - 一般的なアプリケーションモジュール(電子メール、ロギングなど)
├── - knex db使用したpostgresql用のデータベースクライアント
handlebarsを使用したトランザクションメールの├──メール - emails - メールテンプレート├── env - local 、 dev 、 test 、およびprodの環境変数├── migrations - データベーススキーマ移行(Cloud SQL、Knex)
├── )- scripts - 展開スクリプト、レプリーシェルなど。
├── 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 - JEST、SuperTestでユニットテストを実行しますyarn repl - Knex Repl Shellを使用してデータベースに接続するyarn psql - PostgreSQLCLIを使用してデータベースに接続します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としてoauth2.0クライアントを作成するGOOGLE_CLIENT_ID 、 GOOGLE_CLIENT_SECRET環境変数を更新します./env/.env.*そこから、 http://localhost:8080/auth/google (または、ポップアップウィンドウで開く)にアクセスして、Googleを介してログインフローを開始します。
http://localhost/auth/facebook/returnログインフローのコールバックURLとして追加FACEBOOK_APP_IDにコピーして貼り付けて、 env/.env.*必要な各環境のファイルにあるFACEBOOK_APP_SECRET変数を貼り付けます。そこから、 http://localhost:8080/auth/facebook (または、ポップアップウィンドウで開く)にアクセスすると、Facebook経由でログインフローが開始されます。
展開スクリプト( yarn deploy )は、ここからダウンロードできるGoogle Cloud CLI( gcloud )ツールに依存しています。 CI/CDワークフローには、このようなDocker画像が必要になる場合があります。
gcloud auth login - Googleアカウントを使用するGoogle Cloud SDK(CLI)ツールを認証します。
プロダクションのexampleや、テスト / QA環境のexample-testなど、IDを使用してアプリの新しいGCPプロジェクトを作成します。 Cloud Build APIおよびCloud Functions APIがGCPプロジェクトの設定でここで有効になっていることを確認してください。
ここでは、アプリを展開する必要があるのと同じ領域で、クラウドSQLデータベースインスタンスを作成します。 0.6 GB RAMを使用してクラウドSQLのマイクロインスタンスを使用すると、テストやトラフィックの低いWebサイトでは問題ありません。
GOOGLE_CLOUD_PROJECT 、 GOOGLE_CLOUD_REGION 、 PGDATABASE 、 PGUSER 、およびその他の環境変数が、ターゲット展開環境(eg /env/.env + /env/.env.prod )に正しく設定されていることを確認してください。
最後に、実行してアプリをコンパイルして展開します。
yarn build - アプリを.buildフォルダーにコンパイルしますAPP_ENV=<env> yarn db:migrate - データベース(スキーマ)を最新バージョンに移行しますAPP_ENV=<env> yarn deploy - アプリをGoogle Cloud関数(GCF)に展開しますここで、 <env>はターゲット環境です。たとえばAPP_ENV=prod yarn deploy 。
yarn set version latest - 最新バージョンに糸をバンプyarn upgrade-interactive - node.jsモジュールを更新(依存関係)yarn pnpify --sdk vscode - vscodeのタイプスクリプト、eslint、およびよりきれいな設定を更新誰でも、誰でも貢献できます。開始されたヘルプが必要なオープンな問題のリストをチェックすることから始めます。ただし、参加することにした場合は、ガイドラインを確認してください。
Copyright©2016-Present Kriasoft。このソースコードは、ライセンスファイルにあるMITライセンスに基づいてライセンスされています。
Konstantin Tarkus(@koistya、ブログ)と貢献者によって♥で作られています。