Node.js API Starter Kit adalah templat proyek untuk membangun aplikasi backend node.js yang dioptimalkan untuk infrastruktur tanpa server seperti Google Cloud Functions, AWS Lambda, fungsi Azure, dll. Gunakan sebagai server API untuk aplikasi front-end Anda.
local , dev , test , dan prodProyek ini bootstrap dengan Node.js API Starter Kit. Pastikan untuk bergabung dengan saluran Discord kami untuk mendapatkan bantuan.
├── .build Build - Output yang dikompilasi dan dibundel (per fungsi cloud)
├── .vscode - Pengaturan vScode termasuk cuplikan kode, ekstensi yang disarankan dll.
├── api - Fungsi cloud untuk menangani permintaan API menggunakan graphql.js
├── auth - Middleware Otentikasi dan Sesi
├── core - Modul Aplikasi Umum (Email, Logging, dll.)
├── db - Klien Database untuk PostgreSQL Menggunakan Knex
├── emails - Templat Email untuk Email Transaksional Menggunakan Setang
├── env - Variabel Lingkungan untuk local , dev , test , dan prod
├── migrations - Migrasi Skema Database (Cloud SQL, Knex)
├── scripts - skrip penyebaran, shell repl, dll.
├── test - tes unit dan tolok ukur
├── views - Templat HTML Menggunakan Setang
└── ... - Tambahkan lebih banyak fungsi cloud seperti worker , notifications , dll.
git clone -o seed https://github.com/kriasoft/node-starter-kit.git .local , dev , test , dan prod ( ./env ).yarn installyarn db:createyarn start , itu akan tersedia di http: // localhost: 8080. Gunakan variabel lingkungan APP_ENV untuk menjalankan skrip untuk lingkungan yang berbeda, misalnya:
$ APP_ENV=test yarn db:migrate
$ APP_ENV=test yarn start
PENTING : Pastikan bahwa VScode menggunakan versi Workspace dari TypeScript dan Eslint.
yarn start - meluncurkan aplikasi dalam mode pengembangan di http://localhost:8080yarn build - mengkompilasi dan bundel aplikasi untuk penempatanyarn lint - Validasi kode menggunakan Eslintyarn tsc - Validasi Kode Menggunakan Kompiler TypeScriptyarn test - Jalankan Uji Unit dengan Jest, Supertestyarn repl - Sambungkan ke database menggunakan shell KNEX REPLyarn psql - Sambungkan ke database menggunakan PostgreSQL CLIyarn db:create - Buat database baruyarn db:version - Periksa versi database saat iniyarn db:migrate - Migrasi Skema Basis Data ke Versi Terbaruyarn db:rollback - Rollback Migrasi terbaruyarn db:seed Database Seed dengan Data Sampel / Referensiyarn db:reset -Menerapkan kembali file migrasi skema DB terbaruyarn update-types -Menghasilkan model data yang diketik dengan kuat dari skema database Secara opsional atur APP_ENV ke local (default), dev , test , atau prod sebelum menjalankan skrip ini.
Untuk setiap penyedia identitas pihak ke -3 yang perlu diaktifkan untuk aplikasi Anda, Anda harus mendapatkan kredensial aplikasi, sering disebut ID/rahasia klien.
http://localhost/auth/google/return sebagai url callbackGOOGLE_CLIENT_ID , variabel lingkungan GOOGLE_CLIENT_SECRET yang ditemukan di ./env/.env.* untuk setiap lingkungan yang Anda butuhkan. Dari sana, mengunjungi http://localhost:8080/auth/google (atau, membukanya di jendela popup) akan memulai aliran login melalui Google.
http://localhost/auth/facebook/return sebagai url panggilan balik untuk aliran loginFACEBOOK_APP_ID , FACEBOOK_APP_SECRET variabel yang ditemukan di env/.env.* File untuk setiap lingkungan yang Anda butuhkan. Dari sana, mengunjungi http://localhost:8080/auth/facebook (atau, membukanya di jendela popup) akan memulai aliran login melalui Facebook.
Script penyebaran ( yarn deploy ) bergantung pada alat Google Cloud CLI ( gcloud ) yang dapat Anda unduh dari sini. Untuk alur kerja CI/CD, Anda mungkin memerlukan gambar Docker seperti ini.
gcloud auth login - Otorisasi alat Google Cloud SDK (CLI) untuk menggunakan akun Google Anda.
Buat proyek GCP baru untuk aplikasi Anda dengan ID seperti example untuk produksi, dan example-test untuk lingkungan tes / QA. Pastikan API Build Cloud dan Cloud Functions API diaktifkan dalam pengaturan proyek GCP Anda di sini.
Buat instance database Cloud SQL di sini di wilayah yang sama di mana aplikasi Anda perlu digunakan. Menggunakan contoh mikro Cloud SQL dengan 0,6 GB RAM harus OK untuk pengujian dan situs web lalu lintas rendah.
Pastikan GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_REGION , PGDATABASE , PGUSER dan variabel lingkungan lainnya ditetapkan dengan benar untuk lingkungan penyebaran target (eg /env/.env + /env/.env.prod untuk produksi).
Akhirnya, kompilasi dan gunakan aplikasi dengan menjalankan:
yarn build - Mengkompilasi aplikasi ke dalam folder .buildAPP_ENV=<env> yarn db:migrate - migrasi basis data (skema) ke versi terbaruAPP_ENV=<env> yarn deploy - Menyebarkan aplikasi ke Google Cloud Functions (GCF) Di mana <env> adalah lingkungan target, misalnya APP_ENV=prod yarn deploy .
yarn set version latest - Bump Yarn ke Versi Terbaruyarn upgrade-interactive -UPDATE NODE.JS MODULES (Dependensi)yarn pnpify --sdk vscode -Perbarui TypeScript, ESLINT, dan pengaturan yang lebih cantik di VScode Siapa pun dan semua orang dipersilakan untuk berkontribusi. Mulailah dengan memeriksa daftar masalah terbuka yang ditandai bantuan yang diinginkan. Namun, jika Anda memutuskan untuk terlibat, silakan luangkan waktu sejenak untuk meninjau pedoman tersebut.
Hak Cipta © 2016-sekarang Kriasoft. Kode sumber ini dilisensikan di bawah lisensi MIT yang ditemukan dalam file lisensi.
Dibuat dengan ♥ oleh Konstantin Tarkus (@koistya, blog) dan kontributor.