node.js的模板库,具有类似php的语法

时间:2013-08-09 12:42:18

标签: javascript php node.js template-engine

node.js是否有一个库来“解析”具有特定语法的文件内容? 在示例中,我有一个文件,我想在我的node.js服务器上提供:

<!DOCTYPE html>
<html>
<head>...</head>
<body>
    <?node echo Date.getTime(); ?> <!-- or something like this, I hope you have got the idea -->
</body>
</html>

然后它返回一个HTML文档:

<!DOCTYPE html>
<html>
<head>...</head>
<body>
    08.08.2013 <!-- or something like this, I hope you have got the idea -->
</body>
</html>

我不知道如何更精确地描述它,比如用于Apache服务器的PHP,但是用于node.js服务器。

5 个答案:

答案 0 :(得分:3)

EJS模板看起来和感觉像PHP和ASP,但是纯JS:http://embeddedjs.com/

他们的例子:

<ul>
<% for(var i=0; i<supplies.length; i++) {%>
   <li><%= supplies[i] %></li>
<% } %>
</ul>

答案 1 :(得分:2)

您正在谈论模板引擎。有许多可能性,其中最受欢迎的是 jade

http://jade-lang.com/

Express frawework集成时特别好。你可以在这里找到一个很大的模板引擎列表:

https://github.com/joyent/node/wiki/modules#wiki-templating

答案 2 :(得分:2)

您可以使用Underscore templates。它允许您编写如下模板:

<ul>
<% _.each(people, function(name) { %>
  <li><%= name %></li>
<% }); %>
</ul>

答案 3 :(得分:2)

只需使用CGI-Node即可。它允许您在任何Web托管上运行Node.js,就像PHP一样:

<html>
    <head>
    </head>
    <body>
        <? var helloWorld = 'Hello World!'; ?>
        <?= helloWorld ?>
    <br>
    <b>I can count to 10: </b>
    <? for (var index = 0; index <= 10; index++) { ?>
        <?= index ?>
    <? } ?>
    </body>
</html>

答案 4 :(得分:-2)

我可能会晚一点,但我昨天做了类似的事情,它的工作方式与php非常相似。例如。你可以做像

这样的事情
<?j
include_once("header.jhtml");

for(var i = 0; i < 10; i++) { ?>
<span id="<?j print(i) ?>">

<?j}
print($.req.url);
include("footer.jhtml");
?>

将包含头文件(如果它之前没有包含),就像在php中一样,然后打印10个带有id从0到9的跨度,然后打印请求url($是包含的上下文变量请求数据),然后包括页脚文件。所以它基本上是用js语法编写的php。我可能会在本周末的npm上提供它。但是,正如我所说的那样,我已经在它的早期阶段工作了一天。