Nội dung gồm 10 phần chia thành 3 bài viết

7. Làm quen với công cụ gọi API

Một lỗi lớn thường gặp ở các full-stack developer mới vào nghề là gọi API ở front-end trong khi đang code back-end. Việc này sẽ ngốn một lượng lớn thời gian khi triển khai server code. Bạn sẽ phải liên tục nhập giá trị vào mỗi khi trang refresh và chạy đến nơi API được gọi ở front-end. Để tối ưu và tiết kiệm thời gian thì bạn nên làm riêng front-end và back-end. Tập làm quen với tool gọi API như Postman hay SoapUI. Nhờ đó mà bạn có thể gọi API mà không cần động đến front-end. Biết cách dùng chúng cho những routes đã được authenticated để có thể không cần đăng nhập vào trang mà vẫn gọi được API. Riêng tôi thì hay sử dụng Postman và nó miễn phí.

8. Biết xài SQL

Bỏ qua việc cường điệu hoá về cơ sở dữ liệu, NoSQL và độ nổi tiếng của MongoDB trong giới Node.js developers. Các cơ sở dữ liệu quan hệ vẫn là lựa chọn thiết thực nhất để làm ứng dụng. Dù bạn có xài JavaScript để code back-end hay không thì vốn kiến thức kha khá về SQL là điều tiên quyết để có thể tự hào phong cho mình danh hiệu full-stack. Cũng như JavaScript, bạn không cần phải là chuyên gia nhưng phải biết làm các việc cơ bản như tạo/cập nhật tables và chèn dữ liệu.

Phần các hệ cơ sở dữ liệu quan hệ, đáng chú ý như MySQL và PostgreSQL đều được tích hợp với Node.js và có thể dùng khá dễ dàng không thua gì MongoDB và NoSQL. Cá nhân thì SQL queries tiêu chuẩn có vẻ theo "trực giác" hơn so với các hệ cơ sở dữ liệu khác với query dùng JSONs (JavaScript objects). Nếu bạn muốn lưu trữ dữ liệu giống JSONs thì tin mừng là PostgreSQL và MySQL vẫn hỗ trợ.

9. Unit testing và End-to-End testing

Nhắc lần thứ n là không được làm lơ sự quan trọng của việc kiểm thử. Trong thực tế đa phần đều bỏ qua việc kiểm thử front-end. Kiểm thử không chỉ hỗ trợ việc soi với diệt bug mà còn làm code của bạn sạch sẽ hơn và ép bạn phải xem lại code của mình. Các framework như Angular có tích hợp công cụ kiểm thử nên bạn không cần phải quan ngại về nó, chỉ cần bắt đầu việc test thôi.
Bất kỳ yếu tố nào trên trang web mà hành vi của nó thay đổi dựa trên tương tác đều cần phải kiểm thử. Đối với back-end, mọi routes và public methods được gọi thông qua người dùng cũng cần phải kiểm thử. Kiểm thử end-to-end (còn được gọi là “intergration” hoặc “e2e testing”) còn dùng để kiểm thử sự tương tác người dùng, sự tương tác này sẽ kéo dài nhiều trang web và kết nối với back-end. Ví dụ đăng nhập chuyển hướng sẽ cần kiểm e2e. Nếu người dùng bị chuyển hướng đến trang cá nhân sau khi đăng nhập thành công, thì cái đó cần phải kiểm e2e.

10. User-Authentication cơ bản

Có vô số cách để làm website của bạn an ninh hơn: client-side tokens, lưu trữ session, giao quyền xác nhận cho bên thứ ba như MS Archive Directory. Bạn không cần phải thông thạo tất cả nhưng ít nhất cũng phải biết nên xài cái nào. Một khi xong xuôi, chọn một phương pháp dễ dàng nhất và tích luỹ kiến thức của bạn từ đó và đừng quên nghĩ ra một ý tưởng chung chung về các phương pháp tấn công mà hacker có thể dùng để tấn công trang web của bạn. Đương nhiên bạn không cần phải là một chuyên gia bảo mật internet, nhưng nắm rõ các vấn đề cốt lõi thì trang web của bạn sẽ chắc chắn hơn và ít bị ảnh hưởng. Ví dụ như cross-site scripting và SQL injections.

Để đảm bảo an toàn API trong back-end, tôi khuyên các bạn nên thử sức với JSON web token (JWT). Node.js có vài thư viện khá tốt của bên thứ ba dùng với Express và khá dễ dàng làm việc. JWTs là một dạng của client-side authentication, thứ mà bạn sẽ chỉ cho phép một vài user hợp lệ ( các user đã log in) để gửi yêu cầu tới back-end. JWTs còn lưu trữ các JSON objects đã được mã hoá để bạn có thể nhận biết được ai đang gửi yêu cầu. Còn nếu bạn muốn tạo các thông tin lâu bền cho người dùng (lưu trữ đơn hàng của người dùng khi tắt trang web) thì chắc chắn bạn cần phải học về sessions.