Best Template Engine for Nodejs
Bài đăng này đã không được cập nhật trong 6 năm
Có rất nhiều template engine được sử dụng cho Nodejs. Nếu chúng ta sử dụng Express.js thì có thể cái plug-in consolidate.js nó hỗ trợ rất nhiều template engine, có thể kể ra danh sách template engine như sau.
- atpl
- dust (website)
- eco
- ect (website)
- ejs
- haml (website)
- haml-coffee (website)
- handlebars (website)
- hogan (website)
- jade (website)
- jazz
- jqtpl (website)
- JUST
- liquor
- mustache
- QEJS
- swig (website)
- templayed
- toffee
- underscore (website)
- walrus (website)
- whiskers
Nhưng với việc có rất nhiều template engine thì sẽ khiến chúng ta phân vân không biết nên chọn cái nào. Để trả lời cho câu hỏi cái nào sẽ là template engine tốt nhất cho Nodejs? Câu trả lời có lẽ là không có, vì nếu đã có một template engine tốt nhất rồi thì tại sao lại còn có những template engine khác làm gì. Ở đây chúng ta chỉ có thể trả lời cho việc Template engine nào được sử dụng nhiều nhất, và điểm mạnh, điểm yếu của mỗi cái để người dùng có thể chọn lựa sao cho phù hợp với dự án.
Những Template Engine phổ biến
Theo như nghiên cứu tài liệu từ một số chỗ, chẳng hạn như Jade có vẻ như là template engine được dùng phổ biến nhất, nó cũng là template engine mặc định khi mà cài đặt Express.js, nhưng có vẻ như khá nhiều khá thích sử dụng EJS bởi vì tính thuận tiện và đơn giản
Handlebars cũng là một lựa chọn tốt
Một số suggest từ một số trang
Ở bài này mình sẽ giới thiệu về EJS, template engine được khá nhiều người ưa dùng
EJS
Nếu như bạn đã quen thuộc với việc sử dụng HTML thì việc dùng EJS khá dễ dàng, vì với syntax khá giống với html, bạn có thể tạo ra các partial view với ejs để giúp cho việc reused trở nên dễ dàng và giúp cho code dễ đọc, dễ bảo trì hơn. EJS giúp bạn truyền data vào các views. Một số bước để có sử dụng EJS với Nodejs
Cài đặt
chỉ cần chạy lệnh
$ npm install ejs
Sử dụng
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
app.get('/', function(req, res){
res.render('index',{user: "Great User",title:"homepage"});
});
Chúng ta cần bước set view Engine cho ejs
app.set('view engine', 'ejs');
vì mặc định khi cái express.js thì default view engine sẽ là Jade(pug) Chúng ta truyền view tới user bằng cú pháp
res.render('index',{user: "Great User",title:"homepage"});
với index là view và dữ liệu được truyền là user và title. Với việc tạo và sử dụng Partial views giả sử chúng ta đã tạo ra 2 file là header.ejs
<title>
Hello World
</title>
và body.ejs
<div>
Welcome, Great User
</div>
thì ở chỗ gọi tới 2 file đó chúng ta dùng từ khóa include
<html>
<head>
<% include('header.ejs') %>
</head>
<body>
<% include('body.ejs') %>
</body>
</html>
Chúng ta có thể sử dụng javascript cho tempalating trong ejs Ở trong ejs không có hỗ trợ block, mà những việc thực hiện với các danh sách chúng ta phải sử dụng forEach
<ul>
<% users.forEach(function(user){ %>
<%= user.name %>
<% })%>
</ul>
Với data tương ứng cho danh sách như sau
app.get('/', function(req, res){
res.render('index',{users : [
{ name: 'name1' },
{ name: 'name2' },
{ name: 'name3' }
]});
});
All rights reserved