Nên sử dụng template engine nào cho ứng dụng NodeJS (ExpressJS)?



  • Chào mọi người, em là newbie mới học NodeJS.
    Qua tham khảo em thấy có khá nhiều template engine để render view nên không biết dùng loại nào thì thích hợp. Mọi người có kinh nghiệm chia sẻ em phần này với ạ. Em cảm ơn.



  • Có nhiều template engine để bạn lựa chọn, mình thì hay xài: handlerbars. nunjucks cũng khá cool.
    Bạn cũng lưu ý là nodejs framework bạn đang sử dụng có hỗ trợ template engine đó kg.

    tuanquynet

    0

  • Global Moderator

    Mặc định thì ExpressJS sẽ recommend bạn sử dụng Jade (Jade mới đổi tên thành Pug) dùng thằng này cũng được, viết quen thì rất sướng vì viết mã rất nhanh và không cần quan tâm quá nhiều vào thẻ đóng/mở. Trường hợp bạn mới làm quen với Node/Express hoặc chơi nhiều với ASP.NET Web Forms thì có thể dùng EJS vì thằng này nó gần giống với khi viết HTML nên khá quen tay và thân thiện. Trường hợp, mà bạn đang phát triển ứng dụng với Angular hay React thì có thể cũng ko cần với Template Engine, chỉ cần publish Restful API là đủ :))

    Cá nhân mình thì dùng ejs, bạn có thể tạo express app sử dụng EJS bằng lệnh này

    express myapp -e
    

    Tech-nông
    Twitter: @nhubaovu
    Profile: about.me/vunb

    2


  • Cảm ơn mọi người đã tư vấn :). Hiện tại em đang dùng thử Jade, trước cũng nghe cái này rồi nhưng lúc đầu nhìn trong danh sách template engine của Express hỗ trợ thì lại không có nên hơi lúng túng. Hóa ra là mới đổi tên thành Pug.



  • @Vũ Em có thắc mắc là khi dùng Angular thì code mình viết client có thể thấy được như vậy làm sao để bảo mật ứng dụng hả anh? Em đang quan tâm và tìm hiểu để xây dựng ứng dụng MEAN Stack ạ.



  • Để bảo mật mã nguồn phía client thì trước khi deploy sản phẩm, các file js cần được min lại. Có một chú ý khi viết code angular để min không gặp lỗi là khi khai báo một controller, service hay module cần khai báo dưới dạng này:
    Ví dụ: Khi khai báo một controller có sử dụng các module khác:
    angular.module('tenmodule').controller('tencontroller', ['module1', 'module2', function(module1, module2) {...}]);


  • Global Moderator

    @kenguyen đã nói trong Nên sử dụng template engine nào cho ứng dụng NodeJS (ExpressJS)?:

    @Vũ Em có thắc mắc là khi dùng Angular thì code mình viết client có thể thấy được như vậy làm sao để bảo mật ứng dụng hả anh? Em đang quan tâm và tìm hiểu để xây dựng ứng dụng MEAN Stack ạ.

    Như câu hỏi của @kenguyen thì không đáng ngại lắm, muốn giấu code thì có thể làm giống với cách của @name-no

    Nói thêm về bảo mật mình không thể nhanh chóng được, cần có cả chính sách bảo mật và giải pháp kỹ thuật cụ thể. Việc làm đầu tiên là liệt kê được phạm vi các công việc cần thực hiện. Sau đó thực thi các giải pháp cụ thể, tùy vào sản phẩm và công nghệ.

    Bạn có thể tham khảo checklist bảo mật này mà mình đã tổng hợp tại đây: Tổng hợp 11 biện pháp bảo mật về lập trình an toàn trong phát triển ứng dụng Web.

    Còn về việc Minify mã nguồn ở phía client có lợi ích lớn là tăng tốc độ của ứng dụng, chống copy một cách phũ phàng :))) Cái này ưu tiên sau cũng được, vì còn nhiều thứ đáng quan tâm hơn.

    Tech-nông
    Twitter: @nhubaovu
    Profile: about.me/vunb

    1

Log in to reply