Hướng dẫn laravel nodejs - laravel nodejs
Mở đầuChào các bạn, mình - một thằng dev PHP, trải qua một thời gian học và làm PHP với Laravel bỗng một ngày cảm thấy chán, muốn đổi gió một chút, NodeJS là nơi dừng chân tiếp theo. Bài viết này chủ yếu nói về khía cạnh webserver (không so sánh về ngôn ngữ), hãy cùng tìm hiểu về NodeJS/Express dưới góc độ từ một thanh niên PHP chuyển sang các bạn nhé =)). Show Tiếp cận với Node.jsTrước tiên, tất nhiên rồi, muốn học thì hãy tìm hiểu về nó trước, vậy node.js là gì?
Để tránh nhầm lẫn: Node.js là run time, không phải là một ngôn ngữ lập trình, không phải là một JS framework
So với PHP thì sao?Chúng ta hãy tiếp cận một request thường thấy là đọc một file có sẵn trên server sau đó trả về nội dung cho client Cách PHP xử lý:Cách PHP xử lý:
Vậy với node.js thì sao?
Trả về nội dung file cho client khi hệ điều hành hoàn thành việc mở và đọc fileđồng bộ và node.js xử lý theo kiểu bất đồng bộ Như vậy có thể thấy PHP xử lý một request theo kiểu đồng bộ và node.js xử lý theo kiểu bất đồng bộHello world Các bạn có thể tải node.js từ sau đó cài đặt theo hướng dẫn. Sau khi cài đặt xong, hãy bật IDE/Text Editor lên và bắt đầu ngay vào hello world thôi =))
Cũng như các dev thông thường khác, chúng ta bắt đầu với một công nghệ mới từ thứ đơn giản nhất - hello world =)). Vậy để có thể chạy được node.js thì cần phải cài đặt node.js trong máy trước đã Các bạn có thể tải node.js từ sau đó cài đặt theo hướng dẫn. Sau khi cài đặt xong, hãy bật IDE/Text Editor lên và bắt đầu ngay vào hello world thôi =)) ở đây Lưu lại file này dưới tên helloworld.js và chạy lệnh node helloworld.js, bật trình duyệt và xem kết quả nhé :3.HTTP
Ở ví dụ trên, ta thấy ngay đầu tiên là
Hỗ trợ xử lý các sự kiện diễn ra trong hệ thống osCung cấp thông tin về hệ điều hành cryptoHỗ trợ mã hóa/giải mãi Event Driven, Vậy Event driven trong node.js là gì vậy nhỉ? Trước hết hãy nói về event, như bình thường để tương tác với các DOM qua javascript chúng ta thường nói đến các event, các event đơn giản ở đây chỉ là khi click vào một phần tử nào đó (onclick), khi thay đổi giá trị (onchange),... dựa vào các action này chúng ta sẽ xử lý logic cho sự kiện. Trong node.js cũng tương tự, hầu kiến phần core của node.js được thiết kế theo kiến trúc event-driven. Điều này khiến cho node.js khác PHP ở chỗ, khi có request, thay vì phải đọc tất cả các file có liên quan, node.js sẽ khởi động server, khai báo, định nghĩa một loạt các biến, hàm rồi chờ khi có sự kiện xảy ra sẽ nhảy vào các hàm tương ứng. Như ở ví dụ hello world phía trên, khi có sự kiện một request truy cập vào server qua cổng 8080, function phía trong sẽ được chạy
Có thể nói Event Driven khiến cho node.js trở nên khác biệt với các ngôn ngữ còn lại, đặc biệt về tốc độ xử lý, tuy nhiên ưu điểm nào cũng có nhược điểm đi kèm, vì xử lý theo cách "hướng sự kiện" nên chúng ta phải bao quát được tất cả các sự kiện có thể xảy ra để gán logic tương ứng, nhưng khi một sự kiện chưa được định nghĩa thì sao? Tất nhiên là không sao cả (về mặt logic) vì chưa bắt được sự kiện này nên sẽ không có logic nào để xử lý cả KếtTrên đây là những gì mình tìm hiểu và so sánh giữa PHP và node.js, vào bài sau mình sẽ tiếp tục tìm hiểu và so sánh giữa 2 framework Laravel và Express |