首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我需要像Jade或EJS这样的模板引擎呢?

为什么我需要像Jade或EJS这样的模板引擎呢?
EN

Stack Overflow用户
提问于 2016-09-03 07:45:17
回答 3查看 10.8K关注 0票数 25

我熟悉Angularjs(1.x),并在指令中使用模板。

目前,我正在学习nodejs,并作为课程的一部分,提到了模板引擎。在后端使用它们有什么好处?

目前我看不出有什么用。

EN

回答 3

Stack Overflow用户

发布于 2016-09-03 08:03:46

你其实不需要它们,但是它们有很多功能让你的页面更有活力。

例如,您可以使用以下代码只呈现HTML

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
// pass a variable to the view
res.render('somePage', {
    title: 'Awesome title',
    userFriends: friendsList,
    name: 'loggedUserName'
});

现在,前端模板(在本例中是EJS)将使用您发送的数据填充html。因此,html成为动态的,您可以使每个页面看起来不同的每个用户。

代码语言:javascript
运行
复制
<ul>
  <% for(var i=0; i<userFriends.length; i++) {%>
     <li><%= userFriends[i] %></li>
  <% } %>
</ul>

仅使用HTML,您将需要进行大量不必要的AJAX调用来获取数据并将数据添加到html中,这是个坏主意。

希望这能有所帮助。

票数 10
EN

Stack Overflow用户

发布于 2017-10-31 03:26:49

视图引擎允许您使用选项呈现HTML。例如,使用蠕动,我可以创建如下所示的文件:

代码语言:javascript
运行
复制
<!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,然后返回动态内容。

票数 1
EN

Stack Overflow用户

发布于 2019-10-21 18:54:05

现在已经快到2020年了,模板的字面意思是取代了模板引擎。https://medium.com/@PaulBrowne83/do-we-really-need-template-engines-anymore-214eb6bc112e

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39304549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档