节点和HTML在一起,有可能吗?

时间:2014-01-09 14:53:22

标签: javascript html node.js

目前或将来,有可能在同一个文件上合并HTML和Node,就像PHP一样吗?目前我知道我们需要使用模板文件或util.print(),但对于非常简单的情况,存在其他解决方案,例如......?

<?node var util = require("util"); ?>
<strong>Hello <?node util.print("World"); ?>!</strong>

返回:

<strong>Hello World!</strong>

3 个答案:

答案 0 :(得分:2)

Node.js本身不支持开箱即用,但有几个框架(包括流行的Express.js)可以做到。查找Express.js的“模板”,你会看到几个选项,包括EJS(嵌入式JavaScript)和Jade。

http://expressjs.com/guide.html

答案 1 :(得分:1)

Jade允许您使用-预先添加代码以在服务器端运行它,所以

-var a = 1;
script.
    var a=2;

将在客户端上生成一个名为a的变量,其值为2,在服务器上的值为1。显然,你也可以做一些非平凡的事情,但作为一个简单的例子,这是我能想到的最接近PHP <? ?>语法的模拟。

或者像你的比喻一样:

-var W="World";
strong Hello !{W}!

将产生:

<strong>Hello World!</strong>

在浏览器中。

查看语言文档here,尽管作为公平警告,Jade模板只能访问由调用它们的View传递给它们的变量或者在其他模块中显式声明为global的变量(对我来说是最好的)知识)因此在其他地方调用的东西可能无法正确调整范围,并且模板逻辑将在每次加载时运行...

所以是的,虽然你能做到,但我会小心。

答案 2 :(得分:0)

您可以在服务器端汇编和发送HTML,但无法从客户端访问Node。您可能想要阅读Jade / EJS-您最终将变量传递给客户端,您可以访问这些变量来执行PHP风格的逻辑。

相关问题