NestJS ส่วนหนึ่ง — 1
NestJS คืออะไร
NestJS เป็นเฟรมเวิร์กสำหรับสร้างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ Node.js ที่มีประสิทธิภาพและปรับขนาดได้
มันใช้จาวาสคริปต์แบบโปรเกรสซีฟ สร้างขึ้นและรองรับ TypeScript อย่างสมบูรณ์ และรวมองค์ประกอบของ OOP (การเขียนโปรแกรมเชิงวัตถุ), FP (การเขียนโปรแกรมเชิงฟังก์ชัน) และ FRP (การเขียนโปรแกรมปฏิกิริยาเชิงฟังก์ชัน)
NestJS ใช้ประโยชน์จากเฟรมเวิร์กเซิร์ฟเวอร์ HTTP ที่มีประสิทธิภาพ เช่น Express
NestJS ให้ระดับของสิ่งที่เป็นนามธรรมเหนือเฟรมเวิร์ก Node.js ทั่วไปเหล่านี้ (Express/Fastify) และเปิดเผย API ของพวกเขาโดยตรงต่อนักพัฒนา สิ่งนี้ทำให้นักพัฒนามีอิสระในการใช้โมดูลของบุคคลที่สามจำนวนมหาศาลซึ่งมีให้สำหรับแพลตฟอร์มพื้นฐาน
ทำไมต้อง NestJS
- NestJS เป็นเฟรมเวิร์กที่ทำให้การพัฒนาง่ายขึ้น NestJS มีกฎของตัวเองและไม่ได้มีไว้สำหรับการพัฒนาแบ็กเอนด์เท่านั้น กรอบนำเสนอสถาปัตยกรรมไมโครเซอร์วิส มันมีน้ำหนักเบา เรียบง่าย และเป็นโอเพ่นซอร์ส
- มันใช้ประโยชน์จาก TypeScript
- ใช้งานง่าย เรียนรู้ และเชี่ยวชาญ
- Command Line Interface (CLI) อันทรงพลังเพื่อเพิ่มประสิทธิภาพการทำงานและการพัฒนาที่ง่ายดาย
- เอกสารที่มีรายละเอียดและได้รับการดูแลอย่างดี
- การพัฒนาและบำรุงรักษา codebase ที่ใช้งานอยู่
- มันเป็นโอเพ่นซอร์ส
- รองรับโมดูลเฉพาะรังจำนวนมากที่ช่วยให้คุณรวมเข้ากับเทคโนโลยีและแนวคิดทั่วไปได้อย่างง่ายดาย เช่น TypeORM, Mongoose, GraphQL, การบันทึก, การตรวจสอบความถูกต้อง, การแคช, WebSockets และอื่นๆ อีกมากมาย
- การทดสอบหน่วยอย่างง่าย
- รองรับแอพพลิเคชั่น Monoliths และ Microservices
- สามารถใช้สร้างและปรับขนาดแอปพลิเคชันระดับองค์กรขนาดใหญ่ได้
- กระบวนการพัฒนาที่รวดเร็วและมีประสิทธิภาพ
- แอพพลิเคชั่นที่ปรับขนาดได้สูงและบำรุงรักษาง่าย
- กรอบ Node.js ที่เติบโตเร็วที่สุดในช่วง 3 ปีที่ผ่านมา
- ชุมชนขนาดใหญ่และระบบสนับสนุน
- มันใช้สิ่งที่ดีที่สุดของ Node.js, TypeScript และรูปแบบสถาปัตยกรรมกันกระสุน
- NestJS บังคับให้นักพัฒนาใช้สถาปัตยกรรมเฉพาะโดยแนะนำโมดูล บริการ และตัวควบคุม เพื่อให้มั่นใจว่าแอปพลิเคชันสามารถปรับขนาดได้ ทดสอบได้สูง และเชื่อมต่ออย่างหลวมๆ ซึ่งตรงกันข้ามกับเฟรมเวิร์ก Node.js อื่นๆ
- ตัวควบคุมสำหรับจัดการคำขอและการตอบสนอง
- โมดูลสำหรับการจัดโครงสร้างรหัสและการแยกการทำงานออกเป็นเชิงตรรกะและสามารถนำมาใช้ซ้ำได้
- ผู้ให้บริการหรือบริการในการจัดการตรรกะที่ซับซ้อนและหลัก
โปรดตรวจสอบว่าได้ติดตั้ง Node.js (เวอร์ชัน >= 12 ยกเว้น v13) บนระบบปฏิบัติการของคุณแล้ว
เริ่มต้นใช้งาน
ติดตั้ง CLI แบบโกลบอลโดยใช้คำสั่ง npm install -g
npm install -g @nestjs/cli
การตั้งค่าโปรเจ็กต์ใหม่ทำได้ง่ายมากด้วย Nest CLI คุณสร้างโปรเจ็กต์ Nest ใหม่ได้ด้วยคำสั่งต่อไปนี้
nest new project-name
เมื่อกระบวนการติดตั้งเสร็จสมบูรณ์ คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มแอปพลิเคชัน:
npm run start
ในการเรียกใช้แอปพลิเคชันในโหมดการพัฒนาให้ใช้คำสั่งต่อไปนี้:
npm run start:dev
วัตถุประสงค์ของผู้ควบคุมคือการรับคำขอเฉพาะสำหรับแอปพลิเคชัน
กลไกการกำหนดเส้นทางจะควบคุมว่าคอนโทรลเลอร์ใดได้รับคำขอใด
บ่อยครั้ง ตัวควบคุมแต่ละตัวมีเส้นทางมากกว่าหนึ่งเส้นทาง และเส้นทางที่แตกต่างกันสามารถดำเนินการต่างๆ ได้
หากต้องการสร้างคอนโทรลเลอร์โดยใช้ CLI ให้รันคำสั่งต่อไปนี้
nest g controller name
การสร้างบริการแรก
ผู้ให้บริการเป็นแนวคิดพื้นฐานใน NestJS
คลาส NestJS พื้นฐานหลายคลาสอาจถือเป็นผู้ให้บริการ เช่น บริการ ที่เก็บ โรงงาน ผู้ช่วยเหลือ และอื่นๆ แนวคิดหลักคือความสามารถในการฉีดให้เป็นที่พึ่งพา
หากต้องการสร้างบริการโดยใช้ CLI เพียงดำเนินการคำสั่งต่อไปนี้
nest g service name
การสร้างโมดูลแรก
โมดูลคือคลาสที่มีคำอธิบายประกอบด้วย @Module() มัณฑนากร
มัณฑนากร @Module() ให้ข้อมูลเมตาที่ NestJS ใช้เพื่อจัดระเบียบโครงสร้างแอปพลิเคชัน
แต่ละแอ็พพลิเคชันมีโมดูลรูทอย่างน้อยหนึ่งโมดูล
โมดูลรูทเป็นจุดเริ่มต้นที่ NestJS ใช้ในการสร้างกราฟแอปพลิเคชัน — โครงสร้างข้อมูลภายในที่ NestJS ใช้เพื่อแก้ไขโมดูลและความสัมพันธ์ของผู้ให้บริการและการพึ่งพา เราต้องการเน้นย้ำว่าโมดูลได้รับการแนะนำอย่างยิ่งว่าเป็นวิธีที่มีประสิทธิภาพในการจัดระเบียบส่วนประกอบของคุณ ดังนั้น สำหรับแอปพลิเคชันส่วนใหญ่ สถาปัตยกรรมที่ได้จะใช้โมดูลหลายโมดูล โดยแต่ละโมดูลจะรวมความสามารถที่เกี่ยวข้องกันอย่างใกล้ชิด
หากต้องการสร้างโมดูลโดยใช้ CLI เพียงดำเนินการคำสั่งต่อไปนี้
nest g module name
บทสรุป
ในบล็อกนี้ เราได้เรียนรู้วิธีสร้างโมดูล บริการ และตัวควบคุม วิธีเรียกใช้เซิร์ฟเวอร์ และสร้างโครงการพร้อมกับแนวคิดหลักบางประการ
คอยติดตามส่วนอื่นของบล็อกนี้
ผู้แต่ง:- Lavesh Katariya
ติดตามเราได้ที่https://www.linkedin.com/company/brilworks
ติดต่อเราhttps://www.brilworks.com/contact-us/





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)