Node.js API Starter Kit เป็นเทมเพลตโครงการสำหรับการสร้าง Node.js แอปพลิเคชันแบ็กเอนด์ที่ปรับให้เหมาะสมสำหรับโครงสร้างพื้นฐานแบบไม่มีเซิร์ฟเวอร์เช่นฟังก์ชั่น Google Cloud, AWS Lambda, ฟังก์ชั่น Azure ฯลฯ ใช้เป็นเซิร์ฟเวอร์ API สำหรับแอพส่วนหน้าของคุณ
local , dev , test และ prodโครงการนี้ถูก bootstrapped ด้วย node.js api starter kit อย่าลืมเข้าร่วมช่อง Discord ของเราเพื่อขอความช่วยเหลือ
├── .build - รวบรวมและรวมเอาท์พุท (ต่อฟังก์ชั่นคลาวด์)
├── .vscode - การตั้งค่า VSCODE รวมถึงตัวอย่างรหัสส่วนขยายที่แนะนำ ฯลฯ
├── api - ฟังก์ชั่นคลาวด์สำหรับการจัดการคำขอ API โดยใช้ graphql.js
├── auth - การรับรองความถูกต้องและมิดเดิลแวร์เซสชัน
├── core - โมดูลแอปพลิเคชันทั่วไป (อีเมลการบันทึก ฯลฯ )
├── db - ไคลเอนต์ฐานข้อมูลสำหรับ postgreSQL โดยใช้ knex
├── emails - เทมเพลตอีเมลสำหรับอีเมลธุรกรรมโดยใช้ HandleBars
├── 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.gitlocal , 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:8080yarn build - รวบรวมและรวมแอพสำหรับการปรับใช้yarn lint - ตรวจสอบรหัสโดยใช้ ESLINTyarn tsc - ตรวจสอบรหัสโดยใช้ TypeScript Compileryarn test - เรียกใช้การทดสอบหน่วยด้วยความตลกขบขันสุดยอดyarn repl - เชื่อมต่อกับฐานข้อมูลโดยใช้ knex repl shellyarn psql - เชื่อมต่อกับฐานข้อมูลโดยใช้ PostgreSQL CLIyarn db:create - สร้างฐานข้อมูลใหม่yarn db:version - ตรวจสอบเวอร์ชันปัจจุบันของฐานข้อมูลyarn db:migrate - โยกย้ายสคีมาฐานข้อมูลไปยังเวอร์ชันล่าสุดyarn db:rollback - ย้อนกลับการย้ายถิ่นล่าสุดyarn db:seed - ฐานข้อมูลเมล็ดพร้อมข้อมูลตัวอย่าง / อ้างอิงyarn db:reset -ใช้ไฟล์การโยกย้าย DB Schema ล่าสุดอีกครั้งyarn update-types -สร้างแบบจำลองข้อมูลที่พิมพ์อย่างมากจากสคีมาฐานข้อมูล เลือกตั้ง APP_ENV เป็น local (ค่าเริ่มต้น), dev , test หรือ prod ก่อนที่จะเรียกใช้สคริปต์เหล่านี้
สำหรับผู้ให้บริการข้อมูลประจำตัวของบุคคลที่สามแต่ละคนที่จำเป็นต้องเปิดใช้งานแอปของคุณคุณจะต้องได้รับข้อมูลรับรองแอปพลิเคชันซึ่งมักเรียกว่ารหัสลูกค้า/ความลับ
http://localhost/auth/google/return เป็น URL การโทรกลับGOOGLE_CLIENT_ID , GOOGLE_CLIENT_SECRET ตัวแปรสภาพแวดล้อมที่พบใน ./env/.env.* สำหรับแต่ละสภาพแวดล้อมที่คุณต้องการ จากนั้นเป็นต้นไปการเยี่ยมชม http://localhost:8080/auth/google (หรือการเปิดในหน้าต่างป๊อปอัพ) จะเริ่มต้นโฟลว์เข้าสู่ระบบผ่าน Google
http://localhost/auth/facebook/return เป็น URL โทรกลับสำหรับโฟลว์เข้าสู่ระบบFACEBOOK_APP_ID ตัวแปร FACEBOOK_APP_SECRET ที่พบใน env/.env.* ไฟล์สำหรับแต่ละสภาพแวดล้อมที่คุณต้องการ จากนั้นเป็นต้นไปการเยี่ยมชม http://localhost:8080/auth/facebook (หรือการเปิดในหน้าต่างป๊อปอัพ) จะเริ่มการเข้าสู่ระบบโฟลว์ผ่าน Facebook
สคริปต์การปรับใช้ ( yarn deploy ) ขึ้นอยู่กับเครื่องมือ Google Cloud CLI ( gcloud ) ที่คุณสามารถดาวน์โหลดได้จากที่นี่ สำหรับเวิร์กโฟลว์ CI/CD คุณอาจต้องใช้อิมเมจนักเทียบท่าเช่นนี้
gcloud auth login - อนุญาตเครื่องมือ Google Cloud SDK (CLI) เพื่อใช้บัญชี Google ของคุณ
สร้างโครงการ GCP ใหม่สำหรับแอปของคุณด้วย IDS เช่น example สำหรับการผลิตและ example-test สำหรับสภาพแวดล้อมการทดสอบ / QA ตรวจสอบให้แน่ใจว่าการเปิดใช้งานฟังก์ชั่น API ของคลาวด์และคลาวด์ API ในการตั้งค่าโครงการ GCP ของคุณที่นี่
สร้างอินสแตนซ์ฐานข้อมูล Cloud SQL ที่นี่ในภูมิภาคเดียวกันกับที่แอปของคุณจำเป็นต้องปรับใช้ การใช้อินสแตนซ์ขนาดเล็กของคลาวด์ SQL ที่มี RAM 0.6 GB ควรใช้ได้สำหรับการทดสอบและเว็บไซต์การจราจรต่ำ
ตรวจสอบให้แน่ใจว่า GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_REGION , PGDATABASE , PGUSER และตัวแปรสภาพแวดล้อมอื่น ๆ ถูกตั้งค่าอย่างถูกต้องสำหรับสภาพแวดล้อมการปรับใช้เป้าหมาย (เช่น /env/.env + /env/.env.prod สำหรับการผลิต)
ในที่สุดคอมไพล์และปรับใช้แอพโดยรัน:
yarn build - รวบรวมแอพลงในโฟลเดอร์ .buildAPP_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 -UPDATE Typescript, Eslint และการตั้งค่าที่สวยงามใน VSCODE ทุกคนและทุกคนยินดีที่จะมีส่วนร่วม เริ่มต้นด้วยการตรวจสอบรายการปัญหาเปิดที่ต้องการความช่วยเหลือที่ต้องการ อย่างไรก็ตามหากคุณตัดสินใจที่จะมีส่วนร่วมโปรดใช้เวลาสักครู่เพื่อตรวจสอบแนวทาง
ลิขสิทธิ์© 2016- ปัจจุบัน Kriasoft ซอร์สโค้ดนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ที่พบในไฟล์ใบอนุญาต
ทำด้วย♥โดย Konstantin Tarkus (@koistya, บล็อก) และผู้สนับสนุน