AdonisJS | Laravel เหมือน Framework สำหรับ NodeJs

Feb 28 2023
AdonisJS เป็นเว็บเฟรมเวิร์กที่มีคุณสมบัติครบถ้วนสำหรับ Node.js ซึ่งได้รับอิทธิพลอย่างมากจาก Laravel ซึ่งเป็นเว็บเฟรมเวิร์ก PHP ที่ได้รับความนิยม

AdonisJS เป็นเว็บเฟรมเวิร์กที่มีคุณสมบัติครบถ้วนสำหรับ Node.js ซึ่งได้รับอิทธิพลอย่างมากจาก Laravel ซึ่งเป็นเว็บเฟรมเวิร์ก PHP ที่ได้รับความนิยม ในบทสรุปนี้ เราจะสำรวจความเหมือนและความแตกต่างระหว่าง AdonisJS และ Laravel และให้ตัวอย่างของฟีเจอร์ AdonisJS ที่สอดคล้องกับฟีเจอร์ของ Laravel

ความคล้ายคลึงกัน:

  1. สถาปัตยกรรม MVC: ทั้ง AdonisJS และ Laravel ใช้รูปแบบสถาปัตยกรรม Model-View-Controller (MVC) เพื่อจัดโครงสร้างเว็บแอปพลิเคชัน
  2. อินเทอร์เฟซบรรทัดคำสั่ง (CLI): ทั้ง AdonisJS และ Laravel มีอินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับสร้างรหัสสำเร็จรูป เรียกใช้การย้ายฐานข้อมูล และงานอื่นๆ
  3. การกำหนดเส้นทาง: ทั้งสองเฟรมเวิร์กใช้การกำหนดเส้นทางเพื่อกำหนดวิธีจัดการคำขอ HTTP
  4. มิดเดิลแวร์: AdonisJS และ Laravel ต่างใช้มิดเดิลแวร์เพื่อจัดการงานต่างๆ เช่น การพิสูจน์ตัวตน การตรวจสอบคำขอ และการบันทึก
  5. ORM: ทั้ง AdonisJS และ Laravel มี ORM (Object-Relational Mapping) สำหรับการทำงานกับฐานข้อมูล
  6. เทมเพลตที่เหมือนใบมีด: AdonisJS มาพร้อมกับเครื่องมือสร้างเทมเพลตของตัวเองที่ชื่อว่า Edge ซึ่งมีไวยากรณ์ที่คล้ายกับ Laravel's Blade
  7. ชุมชน: ทั้ง AdonisJS และ Laravel มีชุมชนของนักพัฒนาที่ใช้งานอยู่ซึ่งมีส่วนร่วมในการพัฒนาเฟรมเวิร์ก สร้างแพ็คเกจ และให้การสนับสนุน
  1. ภาษา: AdonisJS สร้างขึ้นบน Node.js ในขณะที่ Laravel สร้างขึ้นบน PHP
  2. Async: AdonisJS ได้รับการออกแบบมาให้เป็นแบบอะซิงโครนัสและใช้ Promises ในขณะที่ Laravel เป็นแบบซิงโครนัสและใช้ข้อยกเว้น
  3. โครงสร้างไฟล์: AdonisJS มีโครงสร้างไฟล์ที่แตกต่างจาก Laravel โดยมีไดเร็กทอรี เช่นapp/Controllersและapp/Modelsแทนapp/Http/Controllersและapp/Modelsใน Laravel
  4. การกำหนดค่า: AdonisJS ใช้.envไฟล์สำหรับการกำหนดค่าในขณะที่ Laravel ใช้.envไฟล์เช่นเดียวกับconfigไฟล์
  5. การจัดลำดับมิดเดิลแวร์: AdonisJS ใช้มิดเดิลแวร์ตามลำดับที่กำหนดไว้ในไฟล์เส้นทาง ในขณะที่ Laravel ใช้มิดเดิลแวร์ตามลำดับที่กำหนดไว้ในไฟล์เคอร์เนล

นี่คือตัวอย่างความแตกต่างของ AdonisJS และ Laravel ในแนวทางการกำหนดเส้นทาง:

ใน AdonisJS คุณสามารถกำหนดเส้นทางโดยใช้ API ที่คล่องแคล่ว:

AdonisJs การกำหนดเส้นทาง

ใน Laravel:

การกำหนดเส้นทาง Laravel

ต่อไปนี้คือตัวอย่างวิธีสร้างโมเดลและการโยกย้ายใน AdonisJS:

คำสั่งนี้จะสร้างไฟล์โมเดลใหม่ในแอป/Models ชื่อ Post.js และไฟล์การย้ายข้อมูลในฐานข้อมูล/การย้ายข้อมูลที่เรียกว่า 1612989050522_create_posts_table.js

สร้าง Model Command ใน AdonisJs

ตอนนี้เปิดไฟล์การโยกย้ายและกำหนดสคีมาสำหรับpostsตาราง:

การย้ายข้อมูลนี้จะสร้างpostsตารางที่มีการประทับเวลาid, title, bodyและcreated_atและupdated_at

ตัวอย่างการโยกย้าย AdnoisJs

ตอนนี้เปิดไฟล์โมเดลและกำหนดสคีมาสำหรับPostโมเดล:

ตัวอย่างโมเดล AdonisJs

แค่นั้นแหละ! ตอนนี้คุณสามารถใช้Postโมเดลเพื่อโต้ตอบกับpostsตารางในฐานข้อมูลของคุณได้ ตัวอย่างเช่น หากต้องการสร้างโพสต์ใหม่ คุณสามารถดำเนินการดังต่อไปนี้:

โต้ตอบกับรุ่น AdonisJs

นี่คือตัวอย่างของตัวควบคุม AdonisJS พื้นฐานสำหรับPostโมเดลที่เราสร้างไว้ก่อนหน้านี้:

ตัวอย่างคอนโทรลเลอร์ใน AdonisJs

ตัวควบคุมนี้กำหนดวิธีการต่างๆ สำหรับจัดการการดำเนินการ CRUD บนPostโมเดล

เมธอดindex()ดึงโพสต์ทั้งหมดจากฐานข้อมูลและส่งกลับเป็นอาร์เรย์

เมธอดstore()สร้างโพสต์ใหม่โดยแยกtitleและ ออก bodyจากออบเจกต์คำขอ สร้างPostอินสแตนซ์ใหม่ ตั้งค่าฟิลด์ และบันทึกลงในฐานข้อมูล จากนั้นจะส่งคืนโพสต์ที่สร้างขึ้นใหม่

เมธอดshow()ดึงโพสต์เดียวตามidพารามิเตอร์และส่งกลับ

เมธอดupdate()จะอัปเดตโพสต์ตามidพารามิเตอร์ แยกtitleและ ออก bodyจากออบเจกต์คำขอ อัปเดตฟิลด์ของโพสต์ และบันทึกลงในฐานข้อมูล จากนั้นจะส่งคืนโพสต์ที่อัปเดต

วิธีdestroy()การลบโพสต์ตามidพารามิเตอร์และส่งกลับ

เมธอดเหล่านี้ใช้มิดเดิลแวร์ในตัวของ AdonisJS และออบเจกต์คำขอ/ตอบกลับเพื่อจัดการคำขอขาเข้าและการตอบกลับขาออก โปรดทราบว่านี่เป็นเพียงตัวอย่างพื้นฐาน และยังมีคุณลักษณะและเทคนิคอื่นๆ อีกมากมายใน AdonisJS สำหรับการสร้างตัวควบคุมที่มีประสิทธิภาพ

AdonisJS ที่มีไวยากรณ์และแบบแผนเหมือน Laravel ช่วยให้นักพัฒนาได้รับประสบการณ์ที่คุ้นเคยและใช้งานง่ายเมื่อสร้างเว็บแอปพลิเคชันแบบเต็มสแต็กใน JavaScript สถาปัตยกรรม MVC ของเฟรมเวิร์ก, ORM อันทรงพลัง, มิดเดิลแวร์, การกำหนดเส้นทาง, การพิสูจน์ตัวตน และความสามารถในการแสดงผลการดูทำให้เป็นตัวเลือกที่แข็งแกร่งและมีประสิทธิภาพสำหรับนักพัฒนาที่ต้องการสร้างเว็บแอปพลิเคชันสมัยใหม่ใน Node.js