รู้เบื้องต้นเกี่ยวกับ NestJS [แหล่งข้อมูลการเรียนรู้ +6]
เผยแพร่แล้ว: 2023-01-06NestJS เป็นเฟรมเวิร์ก Node.js แบบโปรเกรสซีฟสำหรับสร้างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ปรับขนาดได้ มีประสิทธิภาพ และเชื่อถือได้
NestJS ถูกสร้างขึ้นเพื่อขจัดโค้ดเบสที่ไม่เป็นระเบียบ โครงสร้างแบบแยกส่วนช่วยให้จัดระเบียบโค้ดเป็นโมดูลต่างๆ ได้ง่าย
NestJS สร้างขึ้นบน Typescript และใช้ ExpressJS ภายใต้ประทุน NestJS เป็นที่ชื่นชอบของนักพัฒนาที่ต้องการใช้ประโยชน์จากพลังการตรวจสอบประเภทของ TypeScript NestJS รวมแง่มุมต่างๆ ของ Functional Reactive Programming (FRP), Object Oriented Programming (OOP) และ Functional Programming (FP)
ทำไมต้อง NestJS
NestJS เป็นมิตรกับผู้เริ่มต้นเนื่องจากมีโครงสร้างที่ดีและเครื่องมือ Command Line Interface (CLI) ที่ใช้งานง่าย นักพัฒนาจึงสามารถวางโครงสร้างคุณลักษณะใหม่ได้ด้วยคำสั่งเดียวในขณะที่ใช้เฟรมเวิร์ก Node.js นี้
NestJS มีโมดูล บริการ ตัวควบคุม และชุดทดสอบเพื่อให้คุณเริ่มต้นได้ นอกจากนี้คุณยังสามารถใช้ต้นแบบและเทมเพลตที่มีอยู่มากมายเพื่อให้การพัฒนาของคุณง่ายขึ้น
เส้นโค้งการเรียนรู้สำหรับ NestJS จะเป็นเรื่องง่ายสำหรับผู้ที่คุ้นเคยกับลูป ไวยากรณ์ และเงื่อนไขใน JavaScript และ Angular
คุณสมบัติของ NestJS
สร้างขึ้นบน Typescript
NestJS สร้างขึ้นบน Typescript ซึ่งเป็นตัวยกของ JavaScript Typescript มอบประสบการณ์การพัฒนาที่ดีขึ้น เนื่องจากคุณไม่จำเป็นต้องตรวจสอบข้อผิดพลาดด้วยตนเองทุกครั้งที่คุณเปลี่ยนแปลงบางอย่างในโค้ด Typescript โดยทั่วไปมีคุณสมบัติทั้งหมดของ JavaScript แต่ยังมาพร้อมกับฟังก์ชันเพิ่มเติมบางอย่าง
ภาชนะฉีดพึ่งพา
การฉีดการพึ่งพาจะแยกการเริ่มต้นของวัตถุที่คลาสใช้จากตัวคลาสเอง ในกรณีเช่นนี้ คลาสจะเรียกว่า 'ไคลเอ็นต์' ในขณะที่การพึ่งพาของคลาสจะเรียกว่า 'บริการ' DI ในตัวใน NestJS ทำให้แอปพลิเคชันมีประสิทธิภาพและเป็นโมดูลมากขึ้น
อินเตอร์เฟสบรรทัดคำสั่ง (CLI) อันทรงพลัง
คุณสามารถเริ่มต้น พัฒนา และบำรุงรักษาแอปพลิเคชัน NestJS ทั้งหมดของคุณโดยใช้ NestCLI มีหลายสิ่งที่คุณสามารถทำได้โดยใช้ Nest CLI เช่น
- นั่งร้านโครงการ
- ให้บริการโครงการในโหมดการพัฒนา
- สร้างและรวมแอปพลิเคชันสำหรับการกระจายการผลิต
การทำให้เป็นโมดูล
ทุกแอปพลิเคชัน NestJS มีอย่างน้อยหนึ่งโมดูล โมดูล 'รูท' เป็นโมดูลพื้นฐานที่สุด ในแอป NestJS ทั่วไป ทุกส่วนตรรกะของแอปพลิเคชันจะอยู่ในขอบเขตโดเมน (โมดูล) เดียวกัน การตั้งค่าดังกล่าวช่วยให้จัดระเบียบส่วนประกอบต่างๆ ได้ง่าย โดยที่แอปพลิเคชันจะมีหลายโมดูลพร้อมชุดความสามารถที่เกี่ยวข้องกันอย่างใกล้ชิด
การทดสอบหน่วย
การทดสอบอัตโนมัติมาพร้อมกับคุณประโยชน์มากมาย อย่างไรก็ตาม กระบวนการตั้งค่าการทดสอบดังกล่าวอาจมีความเกี่ยวข้องมากกว่านั้นมาก NestJS มีฟีเจอร์มากมายที่จะช่วยให้ทีมสร้างและทำการทดสอบโดยอัตโนมัติ ข้อดีเกี่ยวกับ NestJS คือสามารถใช้กับเครื่องมือทดสอบต่างๆ ได้ ระบบหัวฉีดแบบพึ่งพา Nest พร้อมใช้งานระหว่างการทดสอบเพื่อให้จำลองส่วนประกอบได้ง่าย
ฐานข้อมูลเป็นเอกเทศ
คุณสามารถรวมเข้ากับฐานข้อมูล SQL หรือ NoSQL ได้อย่างง่ายดาย โดยอิงจากความต้องการและความชอบของคุณเมื่อทำงานกับ NestJS การเชื่อมต่อ NestJS กับฐานข้อมูลนั้นง่ายมาก เนื่องจากคุณเพียงแค่ต้องโหลดไดรเวอร์ Node.js ที่เหมาะสม
สนับสนุนห้องสมุดต่างๆ
NestJS เข้ากันได้กับเครื่องมือต่างๆ ซึ่งทำให้การพัฒนาแอปพลิเคชันเร็วขึ้น เฟรมเวิร์กนี้รองรับ Logging, Validation, Caching, WebSockets, TypeORM, Mongoose และ GraphQL โดยไม่มีการกำหนดค่าเพิ่มเติม
สถาปัตยกรรมและเวิร์กโฟลว์ของ NestJS
NestJS มีสถาปัตยกรรม 3 ชั้นซึ่งประกอบด้วยตัวควบคุม ผู้ให้บริการ และโมดูล นักพัฒนาสามารถสร้างรหัสสะอาดที่ไม่ทับซ้อนกัน
ตัวควบคุม
ตัวควบคุมใน NestJS ทำหน้าที่เป็นสะพานเชื่อมระหว่างคำขอและการตอบสนองของไคลเอ็นต์ กลไกการกำหนดเส้นทางจะส่งคำขอไปยังตัวควบคุมที่เหมาะสมเสมอ เมื่อใดก็ตามที่มีการร้องขอ HTTP กรอบใช้มัณฑนากรและคลาสเพื่อสร้างตัวควบคุม แต่ละเมธอดของคลาสจะถูกแมปกับเส้นทางเพื่อรับคำขอเฉพาะ
ผู้ให้บริการ
ผู้ให้บริการสามารถอธิบายได้ว่าเป็นพื้นฐานของ NestJS ผู้ให้บริการจะถูกแทรกเป็นการพึ่งพาและสร้างความสัมพันธ์ระหว่างวัตถุต่างๆ คลาสใน NestJS เช่น ผู้ช่วยเหลือ บริการ หรือที่เก็บ จะถือว่าเป็นผู้ให้บริการได้เมื่อเพิ่มมัณฑนากร `@Injectable()` แล้ว ผู้ให้บริการดังกล่าวสามารถแทรกเข้าไปในคลาสผ่านตัวสร้างและ NestJS จะแก้ไขการพึ่งพา
โมดูล
โมดูลใน NestJS รวบรวมชุดความสามารถที่เกี่ยวข้องอย่างใกล้ชิด แอป NestJS ทุกแอปมีโมดูลรูทที่ใช้เป็นจุดเริ่มต้น แนะนำให้ใช้หลายโมดูลหากคุณต้องการมีรหัสที่เป็นระเบียบและอ่านง่าย มัณฑนากร `@Module()` ของ Nest กำหนดโมดูลและให้ข้อมูลเช่น การพึ่งพา ตัวควบคุม และผู้ให้บริการเพื่อใช้ร่วมกับโมดูลนั้น
เริ่มต้นใช้งาน NestJS
ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Node.js และ npm แล้ว คุณต้องมีสภาพแวดล้อมรันไทม์ และ Node.js ก็เหมาะสำหรับการตั้งค่านี้ คุณต้องมีเวอร์ชัน >= 12 ยกเว้น v13 คุณสามารถตรวจสอบว่าคุณได้ติดตั้ง Node.js และ npm ผ่านคำสั่งเหล่านี้หรือไม่
node -v
npm -v
หากติดตั้งทั้งสองอย่าง คุณจะได้ผลลัพธ์ใกล้เคียงกับสิ่งนี้
หากคุณไม่มี ให้ติดตั้งผ่านหน้าทางการ โชคดีที่ติดตั้งทั้ง Node.js และ npm ไว้ด้วยกัน
- ติดตั้ง Nest CLI ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า CLI และโครงการ
npm i -g @nestjs/cli
nest new project-name
เราเลือกชื่อโครงการเป็น mynestapp เพื่อการสาธิต NestJS เปิดโอกาสให้คุณทำงานกับ Typescript หรือ Vanilla JavaScript เลือกสิ่งที่เหมาะกับคุณแล้วกด Enter เมื่อแอพได้รับโครงร่าง โครงสร้างไฟล์จะถูกตั้งค่า และโฟลเดอร์ 'src' จะมาพร้อมกับไฟล์หลักหลายไฟล์ดังที่แสดงในภาพหน้าจอนี้
- เรียกใช้แอปพลิเคชัน / สวัสดีโลกใบแรกของคุณ
เมื่อการติดตั้งเสร็จสิ้น ให้รันคำสั่งเหล่านี้เพื่อรันเซิร์ฟเวอร์การพัฒนา
cd mynestapp
npm run start
พิมพ์ http://localhost:3000/ บนเบราว์เซอร์ของคุณและ "Hello World" แรกของคุณบน NestJs ควรปรากฏขึ้น
NestJS: ข้อดี
- ง่ายต่อการเรียนรู้ เป็นเรื่องง่ายที่จะเชี่ยวชาญ NestJS โดยเฉพาะอย่างยิ่งหากคุณมาจาก Angular หรือมีความเข้าใจทั่วไปเกี่ยวกับ JavaScript เอกสารประกอบโดยละเอียดยังช่วยให้เชี่ยวชาญในการทำงานกับเฟรมเวิร์กอันทรงพลังนี้ได้อย่างง่ายดาย
- ยืดหยุ่น คุณสามารถสร้างสิ่งต่างๆ ได้มากมายโดยใช้ NestJS คุณสามารถสร้างแอปพลิเคชัน MVC, แอปพลิเคชัน GraphQL, RESTful API และเว็บซ็อกเก็ตโดยใช้เฟรมเวิร์ก Node.js นี้
- มาพร้อมกับโมดูลนับพัน โมดูลที่สนับสนุนโดยชุมชนช่วยให้นักพัฒนาสามารถจัดโครงสร้างคุณลักษณะต่างๆ ได้ง่ายในขณะที่สร้างแอปพลิเคชันฝั่งเซิร์ฟเวอร์
- การพัฒนาอย่างรวดเร็วและสถาปัตยกรรมที่ดี คุณไม่จำเป็นต้องสร้างทุกอย่างตั้งแต่เริ่มต้นเมื่อทำงานกับ NestJS อย่างไรก็ตาม เฟรมเวิร์กเดียวกันนี้มีสถาปัตยกรรมที่มั่นคงเพื่อให้เข้าใจโค้ดของคุณได้ง่าย
NestJS: ข้อเสีย
- ไม่เหมาะสำหรับผู้ที่มีพื้นหลัง TypeScript และ Angular NestJS ยืมมากจากสถาปัตยกรรมเชิงมุม และผู้ที่ไม่มีความรู้ดังกล่าวอาจต้องใช้เวลาในการทำความเข้าใจไวยากรณ์และโครงสร้าง
- ขาดแคลนในบางพื้นที่ . NestJS ยังอายุน้อยและอาจไม่สามารถแข่งขันกับเฟรมเวิร์กที่สร้างจาก Python และ GO ได้
บริษัทที่ใช้ NestJS
#1. อาดิดาส
Adidas ผู้ผลิตและออกแบบรองเท้าเป็นหนึ่งในบริษัทที่ใช้ NestJS ฟีเจอร์ที่น่าทึ่งของ NestJS จะต้องดึงดูดยักษ์รองเท้ารายนี้ให้ใช้งานบนแบ็กเอนด์
#2. แคปเจมินี่
Capgemini เป็นบริษัทข้ามชาติของฝรั่งเศสที่ให้บริการด้านที่ปรึกษา เทคโนโลยี การเอาท์ซอร์ส และบริการระดับมืออาชีพ บริษัทนี้ใช้ NestJS ในกองเทคโนโลยีของตน
#3. โรช
โรชเป็นบริษัทด้านการดูแลสุขภาพข้ามชาติที่มีสองฝ่าย เภสัชกรรมและการวินิจฉัย Roche ใช้ NestJS เป็นหนึ่งในกองเทคโนโลยีบนเว็บไซต์หลัก
แหล่งเรียนรู้
#1. NestJS Zero ถึงฮีโร่
NestJS Zero to Hero สอนนักพัฒนาเกี่ยวกับวิธีสร้างและปรับใช้แอปพลิเคชันส่วนหลังขององค์กรโดยใช้ Typescript และ Node.js หลักสูตรนี้สอนวิธีสร้าง API, การอนุญาตและการพิสูจน์ตัวตน, การทดสอบแอปพลิเคชัน Nest ของหน่วย และ TypeORM สำหรับการโต้ตอบกับฐานข้อมูล และอื่นๆ อีกมากมาย
#2. NestJS: คู่มือนักพัฒนาฉบับสมบูรณ์
หลักสูตรนี้สอนนักพัฒนาเกี่ยวกับวิธีสร้าง API แบ็กเอนด์โดยใช้ Nest, TypeScript และ TypeORM คู่มือฉบับสมบูรณ์นี้มีทุกสิ่งที่คุณต้องการตั้งแต่การตั้งค่าการเข้ารหัสแอป NestJS การทดสอบ และการปรับใช้ คุณยังจะได้รับความเข้าใจเบื้องหลังของเฟรมเวิร์กเว็บ NestJS
#3. มาสเตอร์ NestJS
Master NestJS สอนวิธีพัฒนาแอป Node.js ระดับองค์กรโดยใช้ TypeScript หลักสูตรนี้สอนการตรวจสอบความถูกต้องและการทำให้เป็นอนุกรมข้อมูล วิธีการทำงานของโทเค็น JWT วิธีใช้ NestCLI และนามธรรมของฐานข้อมูลที่ทันสมัย เหนือสิ่งอื่นใดอีกมากมาย
#4. NestJs ในทางปฏิบัติ (กับ MongoDB)
NestJS ในทางปฏิบัติจะสอนทุกสิ่งที่คุณจำเป็นต้องเรียนรู้เกี่ยวกับ NestJS ตั้งแต่โมดูล คอนโทรลเลอร์ GuardsServices ไปป์ และมิดเดิลแวร์ หลักสูตรนี้ใช้วิธีการตามโครงการโดยที่คุณเขียนโค้ดและโฮสต์โค้ดของคุณบน GitHub พร้อมไฟล์ zip ที่ดาวน์โหลดได้สำหรับทุกส่วน
#5. Nest.js: กรอบงาน Node.js แบบก้าวหน้า
หนังสือเล่มนี้แนะนำนักพัฒนาเกี่ยวกับ NestJS และวิธีใช้ประโยชน์จาก JavaScript และ TypeScript หนังสือได้รับการออกแบบในรูปแบบวิธีการเพื่อให้แน่ใจว่าคุณสามารถตั้งค่าและเรียกใช้แอป NestJS ได้ภายในเวลาไม่นาน
ดูตัวอย่าง | ผลิตภัณฑ์ | คะแนน | ราคา | |
---|---|---|---|---|
Nest.js: กรอบงาน Node.js แบบก้าวหน้า | $24.99 | ซื้อในอเมซอน |
#6. Nest.js ที่ใช้งานได้จริง: พัฒนาเว็บแอปพลิเคชัน MVC ที่สะอาด
หนังสือ Nest.js เชิงปฏิบัติใช้วิธีการตามโครงการเพื่อสร้างแอปพลิเคชันร้านค้าออนไลน์ที่ใช้คุณสมบัติต่างๆ ของ NestJS หนังสือประกอบด้วยการสนทนาสั้นๆ เคล็ดลับ และวลีที่เป็นประโยชน์เมื่อสร้างแอป NestJS ของคุณ
ดูตัวอย่าง | ผลิตภัณฑ์ | คะแนน | ราคา | |
---|---|---|---|---|
Nest.js ที่ใช้งานได้จริง: พัฒนาเว็บแอปพลิเคชัน MVC ที่สะอาด | $16.99 | ซื้อในอเมซอน |
บทสรุป
นอกเหนือจากการเป็นเฟรมเวิร์ก Node.js ที่ทรงพลังแล้ว NestJS ยังเป็นหนึ่งในเฟรมเวิร์ก Typescript ที่ได้รับความนิยมสูงสุดสำหรับแอปพลิเคชันฝั่งเซิร์ฟเวอร์ในปัจจุบัน ความจริงที่ว่ามันนำเสนอแนวทางปฏิบัติที่ดีที่สุดในการเขียนโค้ดและสถาปัตยกรรมการพัฒนามาตรฐานทำให้ดึงดูดวิศวกรจำนวนมากที่ต้องการมุ่งเน้นไปที่การสร้างตรรกะทางธุรกิจเมื่อสร้างแอปพลิเคชัน