AdonisJS | Laravel-Like Framework cho NodeJs

Feb 28 2023
AdonisJS là một khung web đầy đủ tính năng dành cho Node.js chịu ảnh hưởng nặng nề của Laravel, một khung web PHP phổ biến.

AdonisJS là một khung web đầy đủ tính năng dành cho Node.js chịu ảnh hưởng nặng nề của Laravel, một khung web PHP phổ biến. Trong phần tóm tắt này, chúng ta sẽ khám phá những điểm tương đồng và khác biệt giữa AdonisJS và Laravel, đồng thời cung cấp các ví dụ về các tính năng của AdonisJS tương ứng với các tính năng của Laravel.

Điểm tương đồng:

  1. Kiến trúc MVC: Cả AdonisJS và Laravel đều sử dụng mẫu kiến ​​trúc Model-View-Controller (MVC) để cấu trúc các ứng dụng web.
  2. Giao diện dòng lệnh (CLI): Cả AdonisJS và Laravel đều cung cấp giao diện dòng lệnh (CLI) để tạo mã soạn sẵn, chạy di chuyển cơ sở dữ liệu và các tác vụ khác.
  3. Định tuyến: Cả hai khung đều sử dụng định tuyến để xác định cách xử lý các yêu cầu HTTP.
  4. Phần mềm trung gian: AdonisJS và Laravel đều sử dụng phần mềm trung gian để xử lý các tác vụ như xác thực, xác thực yêu cầu và ghi nhật ký.
  5. ORM: Cả AdonisJS và Laravel đều cung cấp ORM (Ánh xạ quan hệ đối tượng) để làm việc với cơ sở dữ liệu.
  6. Mẫu dạng thanh kiếm: AdonisJS đi kèm với công cụ tạo khuôn mẫu riêng có tên là Edge cung cấp một cú pháp tương tự như thanh kiếm của Laravel.
  7. Cộng đồng: Cả AdonisJS và Laravel đều có cộng đồng các nhà phát triển tích cực, những người đóng góp vào sự phát triển của khung, tạo các gói và cung cấp hỗ trợ.
  1. Ngôn ngữ: AdonisJS được xây dựng trên Node.js, trong khi Laravel được xây dựng trên PHP.
  2. Không đồng bộ: AdonisJS được thiết kế không đồng bộ và sử dụng Promise, trong khi Laravel đồng bộ và sử dụng Ngoại lệ.
  3. Cấu trúc tệp: AdonisJS có cấu trúc tệp khác với Laravel, với các thư mục như app/Controllersvà app/Modelsthay vì app/Http/Controllersvà app/Modelstrong Laravel.
  4. Cấu hình: AdonisJS sử dụng .envtệp để cấu hình, trong khi Laravel sử dụng .envtệp cũng như configtệp.
  5. Thứ tự phần mềm trung gian: AdonisJS áp dụng phần mềm trung gian theo thứ tự chúng được xác định trong tệp định tuyến, trong khi Laravel áp dụng phần mềm trung gian theo thứ tự chúng được xác định trong tệp Kernel.

Đây là một ví dụ về sự khác biệt của AdonisJS và Laravel trong cách tiếp cận định tuyến:

Trong AdonisJS, bạn có thể xác định các tuyến đường bằng API thông thạo:

Định tuyến AdonisJs

Trong Laravel:

Định tuyến Laravel

Đây là ví dụ về cách tạo mô hình và di chuyển trong AdonisJS:

Lệnh này sẽ tạo một tệp mô hình mới trong ứng dụng/Mô hình có tên là Post.js và một tệp di chuyển trong cơ sở dữ liệu/di chuyển có tên là 1612989050522_create_posts_table.js.

Tạo lệnh mô hình trong AdonisJs

Bây giờ, hãy mở tệp di chuyển và xác định lược đồ cho postsbảng:

Quá trình di chuyển này sẽ tạo một postsbảng có dấu thời gian id, title, bodyvà created_atvà updated_at.

Ví dụ di chuyển AdnoisJs

Bây giờ Mở tệp mô hình và xác định lược đồ cho mô Posthình:

Ví dụ về mô hình AdonisJs

Đó là nó! Bây giờ bạn có thể sử dụng Postmô hình để tương tác với postsbảng trong cơ sở dữ liệu của mình. Ví dụ: để tạo một bài đăng mới, bạn có thể làm như sau:

Tương tác với người mẫu AdonisJs

Đây là một ví dụ về bộ điều khiển AdonisJS cơ bản cho Postmô hình mà chúng ta đã tạo trước đó:

Ví dụ về bộ điều khiển trong AdonisJs

Bộ điều khiển này xác định một số phương thức để xử lý các hoạt động CRUD trên Postmô hình.

Phương index()thức lấy tất cả các bài đăng từ cơ sở dữ liệu và trả về chúng dưới dạng một mảng.

Phương store()thức tạo một bài đăng mới bằng cách trích xuất titlevà bodytừ đối tượng yêu cầu, tạo một Postthể hiện mới, thiết lập các trường của nó và lưu nó vào cơ sở dữ liệu. Sau đó, nó trả về bài đăng mới được tạo.

Phương show()thức truy xuất một bài đăng theo idtham số của nó và trả về nó.

Phương update()thức cập nhật một bài đăng theo idtham số của nó, trích xuất titlevà bodytừ đối tượng yêu cầu, cập nhật các trường của bài đăng và lưu nó vào cơ sở dữ liệu. Sau đó, nó trả về bài cập nhật.

Phương destroy()thức xóa một bài đăng theo idtham số của nó và trả về nó.

Các phương thức này sử dụng phần mềm trung gian tích hợp sẵn của AdonisJS và các đối tượng yêu cầu/phản hồi để xử lý các yêu cầu gửi đến và phản hồi gửi đi. Lưu ý rằng đây chỉ là một ví dụ cơ bản và còn nhiều tính năng và kỹ thuật khác có sẵn trong AdonisJS để xây dựng các bộ điều khiển mạnh mẽ.

AdonisJS, với các quy ước và cú pháp giống như Laravel, cung cấp cho các nhà phát triển trải nghiệm trực quan và quen thuộc khi xây dựng các ứng dụng web full-stack bằng JavaScript. Kiến trúc MVC, ORM mạnh mẽ, phần mềm trung gian, định tuyến, xác thực và khả năng hiển thị chế độ xem làm cho nó trở thành một lựa chọn mạnh mẽ và hiệu quả cho các nhà phát triển muốn xây dựng các ứng dụng web hiện đại trong Node.js.