ติดตั้งและใช้งาน NestJS Framework

Nodejs ถูกออกแบบมาเพื่อให้มี Performance ที่รับโหลดเยอะๆ ได้ แก้ปัญหาของ Server-side technology แต่เดิม โดยใช้เทคนิค Non-blocking IO
Nestjs เป็น Framework บน Nodejs อีกตัวที่พัฒนาด้วยแนวคิด Modern Javascript ที่เขียนด้วย Typescript ที่มีประสิทธิภาพสูงสามารถ Scalable ได้ สามารถเขียนแบบ OOP (Object Oriented Programming), FP(Functional Programming) และ FRP (Functional Reactive Programming) สามารถทำงานกับ Library ที่อยู่บน npmjs.com ได้ ส่วนจะซับซ้อนหรือไม่ส่วนนี้ก็คงขึ้นอยู่การนำไปใช้ว่ามีการออกแบบโครงสร้างกันอย่างไร โดยส่วนตัวจะวางโครงสร้างให้ Simple ไว้ก่อน และให้แบ่งหน้าที่การทำงานให้ชัดเจน วางมาตรฐานโค้ดดิ่งก่อนลงมือเขียนโค้ด เท่าที่เจอมาคือมันง่ายนะ แต่เราดันไปคิดมากจนทำให้มันซับซ้อนยากไปเอง ^^! เรามาดูวิธีการติดตั้งกันครับ
- ก่อนติดตั้งมาเตรียมเครื่องมือกันก่อนครับ
- เขียน Nodejs ต้องมี Nodejs กันก่อนโดยเข้าไปโหลดได้ที่ลิงค์ https://nodejs.org/en/download เลือก LTS Version และกดติดตั้ง next next ๆๆ ง่ายๆ ^^! เมื่อติดตั้งเสร็จจะได้ npm มาด้วย เราสามารถตรวจสอบได้ด้วยการใช้คำสั่ง
node –version
npm –version
จะแสดงเลขเวอร์ชั่นออกมาแสดงว่าติดตั้งสำเร็จ - ติดตั้ง Nest CLI (Command line interface) เพื่อให้สามารถใช้คำสั่งผ่าน Command line ได้นะครับ
npm i -g @nestjs/cli
- เขียน Nodejs ต้องมี Nodejs กันก่อนโดยเข้าไปโหลดได้ที่ลิงค์ https://nodejs.org/en/download เลือก LTS Version และกดติดตั้ง next next ๆๆ ง่ายๆ ^^! เมื่อติดตั้งเสร็จจะได้ npm มาด้วย เราสามารถตรวจสอบได้ด้วยการใช้คำสั่ง
- สร้างโปรเจทสามารถทำได้ 2 วิธีคือผ่าน Nest CLI หรือ clone ด้วย starter project บน https://github.com/nestjs/typescript-starter
เราจะใช้ Nest CLI กันนะครับโดยการเปิด terminal หรือวินโดว์ก็ powershellnest new {projectName}
ตัวอย่าง nest nest nest01
! Nest CLI เพื่อให้จัดการไฟล์ได้ง่ายผ่าน Command lineและเป็นไปตาม best-practice ของ Nestjs ถ้าใครเคยใช้ PHP Laravel มาก็จะอารมณ์ของ Artisan ที่สามารถ Create, Generate, ดู Route ฯลฯ เพื่อให้สะดวกโดยที่เราไม่ต้องไปสร้างไฟล์เอง สามารถดูคำสั่งต่างๆ ได้จาก https://docs.nestjs.com/cli/usages - cd เข้าไปในโฟร์เดอร์โปรเจทจะเห็นโครงสร้างโค้ดประมาณนี้นะครับ

- main.ts เป็นจุดเริ่มต้นไฟล์หลักของแอพฯ
- app.module.ts เป็น Root module ในการบิ้ว
- app.controller.ts ทำหน้าที่ควบคุมการรับ Request และ Return response ให้ Clinets
- app.service.ts ทำหน้าที่เป็นหนึ่งใน Provider จัดการ service ต่างๆ
- app.controller.spec.ts เป็นไฟล์สำหรับเขียน testing
4. ทดสอบ รันแอพด้วยคำสั่ง npm run start:dev

http://localhost:3000
ต่อไปเราจะมาเริ่มต้นเรียนรู้ด้วยการเขียน api นะครับ