AdonisJS | Laravel เหมือน Framework สำหรับ NodeJs
AdonisJS เป็นเว็บเฟรมเวิร์กที่มีคุณสมบัติครบถ้วนสำหรับ Node.js ซึ่งได้รับอิทธิพลอย่างมากจาก Laravel ซึ่งเป็นเว็บเฟรมเวิร์ก PHP ที่ได้รับความนิยม ในบทสรุปนี้ เราจะสำรวจความเหมือนและความแตกต่างระหว่าง AdonisJS และ Laravel และให้ตัวอย่างของฟีเจอร์ AdonisJS ที่สอดคล้องกับฟีเจอร์ของ Laravel
ความคล้ายคลึงกัน:
- สถาปัตยกรรม MVC: ทั้ง AdonisJS และ Laravel ใช้รูปแบบสถาปัตยกรรม Model-View-Controller (MVC) เพื่อจัดโครงสร้างเว็บแอปพลิเคชัน
- อินเทอร์เฟซบรรทัดคำสั่ง (CLI): ทั้ง AdonisJS และ Laravel มีอินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับสร้างรหัสสำเร็จรูป เรียกใช้การย้ายฐานข้อมูล และงานอื่นๆ
- การกำหนดเส้นทาง: ทั้งสองเฟรมเวิร์กใช้การกำหนดเส้นทางเพื่อกำหนดวิธีจัดการคำขอ HTTP
- มิดเดิลแวร์: AdonisJS และ Laravel ต่างใช้มิดเดิลแวร์เพื่อจัดการงานต่างๆ เช่น การพิสูจน์ตัวตน การตรวจสอบคำขอ และการบันทึก
- ORM: ทั้ง AdonisJS และ Laravel มี ORM (Object-Relational Mapping) สำหรับการทำงานกับฐานข้อมูล
- เทมเพลตที่เหมือนใบมีด: AdonisJS มาพร้อมกับเครื่องมือสร้างเทมเพลตของตัวเองที่ชื่อว่า Edge ซึ่งมีไวยากรณ์ที่คล้ายกับ Laravel's Blade
- ชุมชน: ทั้ง AdonisJS และ Laravel มีชุมชนของนักพัฒนาที่ใช้งานอยู่ซึ่งมีส่วนร่วมในการพัฒนาเฟรมเวิร์ก สร้างแพ็คเกจ และให้การสนับสนุน
- ภาษา: AdonisJS สร้างขึ้นบน Node.js ในขณะที่ Laravel สร้างขึ้นบน PHP
- Async: AdonisJS ได้รับการออกแบบมาให้เป็นแบบอะซิงโครนัสและใช้ Promises ในขณะที่ Laravel เป็นแบบซิงโครนัสและใช้ข้อยกเว้น
- โครงสร้างไฟล์: AdonisJS มีโครงสร้างไฟล์ที่แตกต่างจาก Laravel โดยมีไดเร็กทอรี เช่น
app/Controllersและapp/Modelsแทนapp/Http/Controllersและapp/Modelsใน Laravel - การกำหนดค่า: AdonisJS ใช้
.envไฟล์สำหรับการกำหนดค่าในขณะที่ Laravel ใช้.envไฟล์เช่นเดียวกับconfigไฟล์ - การจัดลำดับมิดเดิลแวร์: AdonisJS ใช้มิดเดิลแวร์ตามลำดับที่กำหนดไว้ในไฟล์เส้นทาง ในขณะที่ Laravel ใช้มิดเดิลแวร์ตามลำดับที่กำหนดไว้ในไฟล์เคอร์เนล
นี่คือตัวอย่างความแตกต่างของ AdonisJS และ Laravel ในแนวทางการกำหนดเส้นทาง:
ใน AdonisJS คุณสามารถกำหนดเส้นทางโดยใช้ API ที่คล่องแคล่ว:
ใน Laravel:
ต่อไปนี้คือตัวอย่างวิธีสร้างโมเดลและการโยกย้ายใน AdonisJS:
คำสั่งนี้จะสร้างไฟล์โมเดลใหม่ในแอป/Models ชื่อ Post.js และไฟล์การย้ายข้อมูลในฐานข้อมูล/การย้ายข้อมูลที่เรียกว่า 1612989050522_create_posts_table.js
ตอนนี้เปิดไฟล์การโยกย้ายและกำหนดสคีมาสำหรับpostsตาราง:
การย้ายข้อมูลนี้จะสร้างpostsตารางที่มีการประทับเวลาid, title, bodyและcreated_atและupdated_at
ตอนนี้เปิดไฟล์โมเดลและกำหนดสคีมาสำหรับPostโมเดล:
แค่นั้นแหละ! ตอนนี้คุณสามารถใช้Postโมเดลเพื่อโต้ตอบกับpostsตารางในฐานข้อมูลของคุณได้ ตัวอย่างเช่น หากต้องการสร้างโพสต์ใหม่ คุณสามารถดำเนินการดังต่อไปนี้:
นี่คือตัวอย่างของตัวควบคุม AdonisJS พื้นฐานสำหรับPostโมเดลที่เราสร้างไว้ก่อนหน้านี้:
ตัวควบคุมนี้กำหนดวิธีการต่างๆ สำหรับจัดการการดำเนินการ CRUD บนPostโมเดล
เมธอดindex()ดึงโพสต์ทั้งหมดจากฐานข้อมูลและส่งกลับเป็นอาร์เรย์
เมธอดstore()สร้างโพสต์ใหม่โดยแยกtitleและ ออก bodyจากออบเจกต์คำขอ สร้างPostอินสแตนซ์ใหม่ ตั้งค่าฟิลด์ และบันทึกลงในฐานข้อมูล จากนั้นจะส่งคืนโพสต์ที่สร้างขึ้นใหม่
เมธอดshow()ดึงโพสต์เดียวตามidพารามิเตอร์และส่งกลับ
เมธอดupdate()จะอัปเดตโพสต์ตามidพารามิเตอร์ แยกtitleและ ออก bodyจากออบเจกต์คำขอ อัปเดตฟิลด์ของโพสต์ และบันทึกลงในฐานข้อมูล จากนั้นจะส่งคืนโพสต์ที่อัปเดต
วิธีdestroy()การลบโพสต์ตามidพารามิเตอร์และส่งกลับ
เมธอดเหล่านี้ใช้มิดเดิลแวร์ในตัวของ AdonisJS และออบเจกต์คำขอ/ตอบกลับเพื่อจัดการคำขอขาเข้าและการตอบกลับขาออก โปรดทราบว่านี่เป็นเพียงตัวอย่างพื้นฐาน และยังมีคุณลักษณะและเทคนิคอื่นๆ อีกมากมายใน AdonisJS สำหรับการสร้างตัวควบคุมที่มีประสิทธิภาพ
AdonisJS ที่มีไวยากรณ์และแบบแผนเหมือน Laravel ช่วยให้นักพัฒนาได้รับประสบการณ์ที่คุ้นเคยและใช้งานง่ายเมื่อสร้างเว็บแอปพลิเคชันแบบเต็มสแต็กใน JavaScript สถาปัตยกรรม MVC ของเฟรมเวิร์ก, ORM อันทรงพลัง, มิดเดิลแวร์, การกำหนดเส้นทาง, การพิสูจน์ตัวตน และความสามารถในการแสดงผลการดูทำให้เป็นตัวเลือกที่แข็งแกร่งและมีประสิทธิภาพสำหรับนักพัฒนาที่ต้องการสร้างเว็บแอปพลิเคชันสมัยใหม่ใน Node.js





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)