Node.js:如何将Node.jsembedded到HTML中?

在一个PHP文件中,我可以这样做:

<p><?php echo "hello!";?></p> 

有没有办法做到这一点,如果是的话是什么逻辑呢?

我有一个想法如何做到这一点:

  • 在HTML文件中为节点使用标识符标记,如: <node>code</node>

  • 在Node中加载和parsingHTML文件

  • 从HTML文件中获取节点标记并运行它

但我不知道这是最好的方式,或者即使它工作:)

请注意我想学习node.js ,所以node.js和其他库和模块都不是我的答案,因为我想知道这个过程的逻辑。

你在描述/请求一个node.js预处理器。 它确实存在,但被认为是有害的。

更好的解决scheme是使用快速使用的视图。 看看屏幕录像 。

如果你必须从头开始,那么你可以写一个微模板引擎。

 function render(_view, data) { var view = render.views[view]; for (var key in data) { var value = data[key]; view.replace("{{" + key + "}}", value); } return view; } render.views = { "someView": "<p>{{foo}}</p>" }; http.createServer(function(req, res) { res.end(render("someView", { "foo": "bar" })); }); 

有很好的理由,为什么混合PHP / ASP / JS代码直接与HTML是不好的。 它不促进分离的问题,并导致意大利面代码。 现在的标准方法是像上面那样的模板引擎。

想要了解更多关于微模板的信息? 阅读J. Resig的文章 。

你可以尝试使用JooDee,一个节点的networking服务器,它允许你在你的网页中embeddedserverside javascript。 如果您熟悉Node和PHP / ASP,创build页面是一件轻而易举的事情。 以下是一个页面如下所示的示例:

 <!DOCTYPE html> <html> <: //server side code in here var os = require('os'); var hostname = os.hostname(); :> <body> <div>Your hostname is <::hostname:></div> </body> </html> 

使用JooDee还可以让服务器的JavaScriptvariables暴露给客户端,通过将属性附加到“客户端”对象服务器端,并访问客户端JavaScript中生成的“客户端”对象。

https://github.com/BigIroh/JooDee

使用模板引擎。 从terminal

 npm install ejs 

在代码中:

 var ejs = require('ejs'); var options = { locals: { foo: function() { return "bar"; } } }; var template = "<p><%= foo() %></p>"; console.log(ejs.render(template, options)); 

不知道这是你在找什么:

Javascript预处理器:

http://www.jspp.io/