[EP.1] Nest.js + MySql (Controller , Module)
2 min read

[EP.1] Nest.js + MySql (Controller , Module)

Nest.js เป็น backend framework ที่ใช้ typescript เป็นภาษาในการเขียน มีconcept คล้ายกับ angular
[EP.1] Nest.js + MySql (Controller , Module)

สวัสดีครับ วันนี้มีอารมณ์อยากหัดเขียน backend ที่ใช้ Node.js ดูแต่ framework มีให้เลือกเยอะมากแต่ลองหาๆดู ก็เจอ Nest.js ที่น่าสนใจ เพราะ มัน เป็น typescript (อยากลองเขียนโดยใช้ typescript บ้าง เพราะปกติเจ้าของบล๊อค เขียนแต่ javascript อย่างเดียวเลย) วันนี้ก็เลยจะมาหัด Nest ดู จะทำเป็น CRUD ง่ายๆมาเริ่มกันเลยดีกว่า

ลง nest กันก่อนเลย~

npm i -g @nestjs/cli
nest new user-crud

โครงสร้างก็จะประมาณนี้

ลอง  npm start ดู ว่ารันได้ไหม http://localhost:3000/ ถ้ารันได้จะมีคำว่า Hello World! ขึ้น

มาสร้าง Controller

ต่อไปเราจะสร้าง controller โดยพิมพ์คำสั่ง

nest g controller users

เพียงเท่านี้เราก็จะได้ users controller มาแล้ว

จากนั้นเพิ่ม code ลงไปใน

users.controller.ts

  @Get()
  getUsers() : string {
  	return "Get all user here"
  }

เราก็จะได้ http://localhost:3000/users มาแล้วครับ

มาแยกออกเป็น Module กันเถอะ

สร้างไฟล์ ชื่อว่า users.module.ts จากนั้นเพิ่มโค๊ดตามข้างล่าง

@Module({
  controllers: [UsersController],
  providers: [],
})
export class UsersModule {}

หลังจากนั้น app.module.ts ใส่  UserModule ไปใน imports เพียงเท่านี้ user เราก็แยกออกเป็น module เรียบร้อย

@Module({
  imports: [UsersModule],
  controllers: [AppController, UsersController],
  providers: [AppService],
})
export class AppModule { }

ผลลัพธ์ที่ได้

EP.1 เอาแค่นี้ก่อนนะครับ EP นี้ ขอมาลองสร้าง route สร้าง controller แยกออกเป็น module ไปก่อน เพื่อให้บทความไม่ยาวจนเกินไป EP ต่อไป เราจะมาลุย ต่อ Database กัน ว่าจะเชื่อม. database ยังไง ทำ api CRUD ยังไง


Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).
personal-by-molysulfur/users-crud
Contribute to personal-by-molysulfur/users-crud development by creating an account on GitHub.