เริ่มสร้าง Module และ Controller กับ nestjs-framework

Image placeholder
แวะมาทักทายกันได้

ในบทความนี้จะ พูดถึงวิธีการสร้าง Module ต่างๆภายใน Project

ก่อนอื่นจะต้องทำความเข้าใจกับโครงสร้างของ โปรเจคก่อน

 

ในโครงสร้างของโปรเจค จะขอกล่าวเฉพาะที่จะต้องใช้งาน ก็คือ Folder src จะมีไฟล์ที่ประกอบไปด้วย


ฝากกดโฆษณา Google Ads สัก click  เพื่อเป็นกำลังใจแก่ผู้เขียนด้วยนะครับ




แต่ละไฟล์จะมีหน้าที่ในการทำ Routing เป็นชุดๆ โดยที่เวลาที่เราเรียก root ของ path เช่น http://localhost:3000/

 

มันจะไปเรียก app.module.ts แล้วก็จะจัดการไปเรียก app.controller.ts ต่ออีกทีหนึ่ง และ ใน app.controller.ts จะมีการจัดการและกำหนด Routing ต่างๆผ่าน Decorator เช่น @Get @Post เป็นต้น เพื่อกำหนดหน้าที่ Method ในการ Request ข้อมูล

 

 

Tip: ปกติเวลาที่จะใช้ @Get() และสังเกตว่าไม่มี parameter อะไร เช่น

 

@Get()

getHello1 : string {

   return “hello1”;

}

 

@Get()

getHello2 : string {

   return “hello2”;

}

 

เมื่อเรียก ที่ Path URL แล้วนั้น มันจะวิ่งไปที่ function บนสุด ดังนั้นจะไม่สามารถใช้ Get ได้หลาย function ในกรณีนี้ แต่ถ้าอยากจะใช้ล่ะ ทำอย่างไร

 

ให้ใส่ parameter ลงไปใน function เช่น

 

 

@Get(‘hello2’)

getHello2 : string {

   return “hello2”;

}

 

ดังนั้นเวลาที่เรียก Path URL ก็จะต้องเรียกด้วย http://localhost:3000/hello2 ต่อท้ายนั่นเอง

 

จะเห็นว่าตัวอย่างที่ผ่านมาจะเป็น controller ที่ถูก generate มาให้เป็น Base ตั้งต้นสมมติว่าตอนนี้เราอยากจะมี Routing อื่นๆด้วยล่ะทำอย่างไร

 

สมมติว่าเราจะสร้าง path api ที่ชื่อว่า http://localhost:3000/blog

 

ให้ทำการสร้าง folder ขึ้นมาในอยู่ภายใต้ src/blog




ขั้นตอนที่ 1 ให้ใช้ command line ให้เปิด terminal ขึ้นมา แล้วใช้คำสั่งในการ generate module ขึ้นมาแล้วตามด้วยชื่อไฟล์ แนะนำว่าให้ตั้งให้ตรงกับ folder คำสั่งว่า nest g module blog




จากนั้นเราจะได้ไฟล์ขึ้นมา 1 ไฟล์





ขั้นตอนที่ 2 คราวนี้เราก็สร้างไฟล์ controller ขึ้นในลักษณะเดียวกัน คือ ใช้คำสั่ง nest g controller blog




จากนั้นเราจะได้ไฟล์ขึ้นมา 2 ไฟล์ ได้แก่ blog.controller.ts และ blog.controller.spec.ts

 

ในส่วนของ blog.controller.spec.ts เป็นไฟล์ที่ใช้สำหรับทดสอบ

 

เมื่อทำเสร็จทั้ง 2 ขั้นตอนแล้วนั้นก็จะต้องทำการเชื่อมต่อกับ Module Root ของโปรเจค ก็คือมาดูที่ app.module.ts ให้เช็คว่า ที่ไฟล์นี้มีการ import Module ใหม่ที่เราสร้างขึ้นมาหรือไม่




ถ้าไม่ จะไม่สามารถใช้งานได้

 

คราวนี้มาที่ไฟล์ Controller ที่ไฟล์ blog.controller.ts เพื่อจัดการ route ข้อมูลมาแสดงผล ยกตัวอย่างเช่น

 

@Get()

    getBlog(){

        return ["Book1","Book2","Book3"];

    }

 

เมื่อไป Run ที่ URL http://localhost:3000/blog

 

ก็จะแสดงผลตามนี้






แวะมาทักทายกันได้
donate

Categories: Tutorial Tags: #nestjs , 1873