使用类似于PHP的语法的Node.js模板库

4
有没有适用于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服务器。


只是为了增加列表: https://mozilla.github.io/nunjucks/ 你有很多选择... - mpen
5个回答

4

只需使用CGI-Node即可。它可以让你像PHP一样在任何 web 托管上运行 Node.js:

<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
EJS模板看起来和感觉像PHP和ASP,但是它们是纯JS:https://ejs.co/ 以下是它们的示例:
<ul>
<% for(var i=0; i<supplies.length; i++) {%>
   <li><%= supplies[i] %></li>
<% } %>
</ul>

这是一篇关于如何在Node.js中使用EJS的教程。点击此处查看教程。 - niutech

2
您可以使用Underscore模板。它可以让您编写像这样的模板:
<ul>
<% _.each(people, function(name) { %>
  <li><%= name %></li>
<% }); %>
</ul>

2

还有类似于脚本语言(比如我之前提到的PHP)的东西吗? - Are
3
请看列表并选择你喜欢的一个。Kiwi可能是你正在寻找的。不过我不知道它有多成熟。Node.JS不同于PHP,因此你需要以不同的方式去做一些事情。 - freakish
@AreWojciechowski Kiwi或Jade只是支持JS子集的模板引擎。但是有一个完整的类似PHP的JavaScript实现,称为CGI-Node,我在下面添加了链接(https://dev59.com/zHXYa4cB1Zd3GeqP631L#40119038)。 - niutech

-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的span,然后打印请求URL($是上下文变量,其中包括请求数据),然后包含页脚文件。因此,它基本上是具有js语法的php。我可能会在这个周末将其发布到npm上。尽管如我所说,它还处于早期阶段,我只花了一天时间来完成它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接