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>
我不知道如何更准确地描述它,比如PHP for Apache服务器,但用于node.js服务器。
只需使用CGI节点。它允许你在任何网络主机上运行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>
EJS模板看起来和感觉都像PHP和ASP,但都是纯JS:https://ejs.co/
他们的例子:
<ul>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
</ul>
您谈论的是模板引擎。有很多可能性,其中最受欢迎的是玉:
http://jade-lang.com/
它与Express框架集成时特别好。你可以在这里找到一个模板引擎的大列表:
https://github.com/joyent/node/wiki/modules#wiki-模板化
您可以使用Undercore模板。它可以让你写这样的模板:
<ul>
<% _.each(people, function(name) { %>
<li><%= name %></li>
<% }); %>
</ul>
我可能会迟到一点,但我昨天做了这样的工作,它的工作原理与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中一样包括头文件(如果以前没有包括),然后打印id为0到9的10个跨度,然后打印请求url($是包括请求数据的上下文变量),然后包括页脚文件。所以它基本上是php和js语法。我可能会在这个周末在npm上提供它。不过,正如我所说,它还处于早期阶段,我为此工作了一天。