为啥我们为 Node 使用服务器端模板引擎?

Posted

技术标签:

【中文标题】为啥我们为 Node 使用服务器端模板引擎?【英文标题】:Why do we use server-side templating engines for Node?为什么我们为 Node 使用服务器端模板引擎? 【发布时间】:2013-08-01 20:25:03 【问题描述】:

例如,我看到很多人提到 Node.js 使用了 jam 或 swig。我正在构建一个 Node.js 应用程序,它将使用 RESTful 接口与客户端进行通信。我希望能够发送和接收更新。我在网上看到的很多教程或应用程序都使用了 Jade 或其他一些模板引擎。

在服务器上使用模板引擎与仅提供一堆常规 html/javascript 并允许客户端根据从服务器发送给它的信息来呈现某些页面的优势是什么?服务器端模板引擎如何改进 RESTful 接口的使用?编辑:有什么优势还是只是个人喜好?

如果它在某些方面是有利的,我会在我的项目走得太远之前花时间学习它,而不是希望我早点学会它:-D

Here 是一个使用 Jade-lang 的示例。

【问题讨论】:

模板和 RESTful 是正交的。 如同,它们彼此无关。好的,很高兴知道 【参考方案1】:

类似 SGML 的标记语言对于计算机和程序员来说都很难阅读。模板引擎通常通过使用更小的标记和语法来帮助加速编程。此外,如果您通过模板所需的预处理器,通常可以添加变量和逻辑。

缺点是渲染模板需要周期。通常虽然这不是问题,因为大多数项目都受到上市时间和处理效率不足的阻碍。

我在大部分项目中都使用 Jade,因为从 HTML 转换到 Jade 非常容易,而且非常直观。从 HTML 到 Jade,我几乎没有任何学习曲线困难。

【讨论】:

【参考方案2】:

模板引擎的一个优点是它们在服务器端运行,您可以直接在模板中进行权限检查。您甚至可以在一个请求中发送模板内的所有用户数据。

它们有其优点和缺点,但安全性是一个很大的优点,因为您不需要依赖客户端来忽略它不应该看到的数据。

还有其他方法可以做到这一点,但这肯定是最简单的方法之一,因为这一切都在一个请求中完成。

我还想快速指出,它们不能替代其他形式的权限检查,您也需要这些。他们只是帮助不要对客户过于信任。

【讨论】:

以上是关于为啥我们为 Node 使用服务器端模板引擎?的主要内容,如果未能解决你的问题,请参考以下文章

Node学习之(第三章:art-template模板引擎的使用)

EJS模板引擎

EJS模板引擎

node.js ejs模板引擎将后端数据赋值给前端js

nodejs+Express中使用mustache模板引擎

十大模板引擎