ก้าวแรกสู่สังเวียน หัดเขียน Nestjs ภาคปฐมบท สร้าง API

Devster Hiddenman
2 min readMay 18, 2020

--

ประมาณ 2 ปีที่แล้วที่ได้มีโอกาสไปงาน Angular Meet up แล้วก็ได้เห็นผู้เชี่ยวชาญหลายๆท่านมาให้ความรู้ และก็แนะนำ Nestjs ให้ได้รู้จักนับแต่นั้นมาก็ได้แต่ทดไว้ในใจว่า เฮ้ย !!สักวันเราจะต้องไปลองหน่อยละ เวลาก็ผ่านไปไวยังไม่ได้เริ่มสักทีโดยส่วนตัวแล้วอาจจะไม่ค่อยได้เขียน Angular บ่อยเท่าไหร่ แต่แค่รู้สึกว่า อยากหัดเขียนไว้บ้าง เผื่ออนาคตจะต้องมีประโยชน์แน่นอน 🚀

สำหรับบทความนี้จะเป็นการทดลองเขียนการ เพิ่ม ลบ แก้ไข และเรียกดูข้อมูลน้ำเก็กฮวย 🍺 โดยพาร์ทนี้จะยังไม่ได้ทำการเชื่อมต่อกับ Database นะครับถ้างั้นมาลองมึนไปด้วยกันเลย 🤪

เริ่มต้นด้วยการ ติดตั้ง Nest CLI เพื่อเอาไว้ใช้ในการสร้างโปรเจ็ค #

npm install -g @nestjs/cli

สร้างโปรเจ็ค #

nest new beer-bcknd-app

หลังจากนั้นก็เข้าไปในโฟลเดอร์ที่เราทำการสร้าง แล้วรันโปรเจ็คขึ้นมา #

cd beer-bcknd-app
npm run start:dev

แอ่น แอน แอ๊นนน 🐜 🐜 🐜…พอเปิดบราวเซอร์ขึ้นมาแล้วเข้าผ่าน http://localhost:3000/ ก็จะได้ผลลัพธ์ดังนี้

รัน localhost:3000

เริ่มต้นสร้าง Module beers #

nest g module beers

สร้าง Controller สำหรับจัดการ Endpoint #

nest g controller beers

สร้าง Request payloads #

ปกติเรา Post ข้อมูลด้วย @Body() ตัวอย่าง เช่น @Body(‘name’) name: string แต่เราจะมาสร้างเจ้าส่ิงที่เรียกว่า DTO (Data Transfer Object) ซึ่งจะเป็นตัวกำหนดว่าหน้าตาข้อมูลที่เราจะส่งไปมีอะไรบ้าง จากตย. เป็นการสร้างไว้สำหรับ Post ข้อมูลน้ำเก็กฮวย 🍺

แทนโค้ด ใน file beers.controller.ts ด้วยโค้ดด้านล่างนี้

สรุป Endpoint นิดนึงละกัน #

http://localhost:3000/beers — GET (โชว์ลิสต์ของน้ำเก็กฮวยทั้งหมด)

http://localhost:3000/beers/{id} — GET (โชว์ลิสต์ของน้ำเก็กฮวยจากไอดี)

http://localhost:3000/beers/create — POST (เพิ่มน้ำเก็กฮวยเข้าสู่ระบบ)

http://localhost:3000/beers/{id} — PUT (อัพเดทข้อมูลน้ำเก็กฮวย)

http://localhost:3000/beers/{id} — DELETE (ลบข้อมูลน้ำเก็กฮวยออกจากระบบ)

โค้ดด้านบนอาจจะรวบรัดนิดนึงโดยทำการสร้าง service กับ interface ไว้แล้ว ไงลองดูต่อนะครับ

สร้าง Service สำหรับจัดการ ข้อมูลเพื่อไว้ให้ Controller เรียกใช้งาน #

nest g service beers

ทำการสร้าง interface สำหรับใช้เช็ค type ของข้อมูล #

สุดท้ายก็แทนโค้ด service ด้วยโค้ดด้านล่างดูนะครับ ฮาร์ดโค้ดตัวข้อมูลน้ำเก็กฮวยมาลองเล่นดูก่อนนะครับ

ไงลองเล่นดูนะครับ ส่วน source code ทั้งหมดไปดูได้ที่นี่เลย https://github.com/devster19/nestjs-beer-bckn.git

จริงๆก็ลองเข้าไปแกะดูจาก document ในหน้าหลักของ Nestjs ดูก็ได้เขาเขียนอธิบายไว้ดีเลย

ปล. หวังว่าถ้ามีใครหลงเข้ามาอ่านก็ขอให้ทำตามได้ด้วยเถิด หากมีคำแนะนำใดๆก็บอกได้นะครับ เพิ่งหัดเขียนดู อยากให้มันกระชับสั้นๆ แต่รู้สึกว่ายากจังแหะ 😓

มีภาคต่อแล้วนะ กดตรงนี้ได้เลยจ้า 😁

--

--