Khi nhắc đến nodejs, người ta hay nghĩ đến full-stack developer. Thực sự rất tuyệt khi bạn có thể làm một trang web, thay vì phải học php cho server rồi javascript ở client thì giờ chỉ cần học javascript là đủ.
Khá nhiều bạn ứng dụng nodejs để làm web, cms, bán hàng . . . mà nếu dùng php với framework/cms hỗ trợ tận răng thì có lẽ dự án sẽ nhanh và ít tốn kém hơn. Nhiều người so sánh performance/ speed với php.
Làm web không phải thế mạnh của Nodejs bởi kiểu xử lý non-blocking với callback của nó mà nhiều dev gọi “callback hell”. Framework/CMS của nodejs cũng còn vô cùng sơ khai và thiếu thốn, không thể so với những Laravel/CI/Wordpress/Joomla . . .
Nếu đơn thuần chỉ là làm web, lời khuyên của cá nhân mình là chọn PHP. Nhưng do bản chất script language, khi chạy cần một web server. Đây là hạn chế chí mạng của PHP khi nhu cầu người dùng ngày một tăng.
Nodejs giải quyết những bài toán mà php không giải quyết được : Realtime
Nếu bạn cần build một website về mua bán nhà đất, mà người mua họ đăng nhu cầu của mình lên và hệ thống sẽ tính toán để tìm người bán phù hợp, nếu nó tìm thấy thì một email sẽ được gởi đi. Việc này chúng ta có thể giải quyết tốt bằng PHP. Nhưng nếu người mua đó yêu cầu hệ thống chỉ được gởi mail cho họ trong khoản 8h – 12h sáng, trong giờ làm việc thì sao ?
Một ví dụ khác, một hệ thống nhắc việc (remider) cho nhân viên. Nếu sếp giao việc cho ai đó và ấn định deadline(thời hạn hoàn thành), và trước deadline khoản 4 giờ thì hệ thống sẽ gởi mail/SMS/ . . . nhắc nhở anh nhân viên đó. Nếu hệ thống này build bằng php thì “thua” vì anh nhân viên đó chưa hẳn lúc nào cũng vào web để check deadline. Cách hiệu quả hơn là phải có một process chạy ngầm kiễm tra và “nhắc” cho nhân viên nếu đến cận giờ. Và có công nghệ nào làm cài process kia tốt hơn nodejs?
Hay hệ thống website “trợ lý ảo đầu tư tài chính” mà một nhóm bạn đã làm, một tác vụ đơn giản là nếu giá bán chạm mức X nào đó thì hệ thống lập tức thông báo cho user. Cái này khó thực hiện được bằng web vì user đâu có “rảnh” ngồi trực trước hệ thống 24/24. Phải có một process nào đó chạy độc lập, tự lấy giá của chứng khoán đó đi kiểm tra rồi thông báo lại cho user khi cần thiết.
Dĩ nhiên, không phủ nhận việc nodejs ngày càng cải tiến và đang lấn dần sang sân của các ngôn ngữ khác. Như ngày càng có nhiều framework hỗ trợ làm web/blog cực cool. Nhưng trên hết, điểm mạnh của nó vẫn đang nằm ở fullstack và realtime.