我熟悉Angularjs(1.x),并在指令中使用模板。
目前,我正在学习nodejs,并作为课程的一部分,提到了模板引擎。在后端使用它们有什么好处?
目前我看不出有什么用。
发布于 2016-09-03 00:03:46
你其实不需要它们,但是它们有很多功能让你的页面更有活力。
例如,您可以使用以下代码只呈现HTML
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
//__dirname : It will resolve to your project folder.
});
但是有了引擎,您可以将数据发送到模板。http://expressjs.com/en/api.html#res.render
// pass a variable to the view
res.render('somePage', {
title: 'Awesome title',
userFriends: friendsList,
name: 'loggedUserName'
});
现在,前端模板(在本例中是EJS)将使用您发送的数据填充html。因此,html成为动态的,您可以使每个页面看起来不同的每个用户。
<ul>
<% for(var i=0; i<userFriends.length; i++) {%>
<li><%= userFriends[i] %></li>
<% } %>
</ul>
仅使用HTML,您将需要进行大量不必要的AJAX调用来获取数据并将数据添加到html中,这是个坏主意。
希望这能有所帮助。
发布于 2017-10-30 19:26:49
视图引擎允许您使用选项呈现HTML。例如,使用蠕动,我可以创建如下所示的文件:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{(userIsSignedIn){<!-- if the user is signed in, display username and description-->
<p>{{username}} is {{description}}</p>
}}
{(!userIsSignedIn){<!--if user isn't signed in, ask them to sign in-->
<p>Sign in to view this page</p>
}}
</body>
</html>
例如,我可以使用Express监听动态用户配置文件URL,然后返回动态内容。
发布于 2019-10-21 10:54:05
现在已经快到2020年了,模板的字面意思是取代了模板引擎。https://medium.com/@PaulBrowne83/do-we-really-need-template-engines-anymore-214eb6bc112e
https://stackoverflow.com/questions/39304549
复制相似问题