Node.js:如何将Node.js嵌入到HTML中?

问题描述:

在php文件我可以做:Node.js:如何将Node.js嵌入到HTML中?

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

有没有办法在节点都做这个,如果是什么是它的逻辑是什么?

我有一个想法,怎么会这样做:<node>code</node>

  • 负载&解析HTML文件中的节点

    • 在HTML文件中像使用的标识符标记为节点

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

    但我不知道这是最好的方式,甚至如果它工作:)

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

    +0

    加入我们在[Node.js的聊天室(http://chat.*.com/rooms/642/node-js);) – Raynos 2011-05-18 21:05:08

    +0

    这个问题并不涉及到嵌入式系统编程所以我已经移除了标签。请参阅http://*.com/tags/embedded/info – 2011-05-19 08:59:20

    你在描述/询问node.js预处理器的内容。 It does exist但它被认为是有害的。

    更好的解决方案是使用express中使用的视图。看看screencasts

    如果您必须从头开始做所有事情,那么您可以编写一个微模板引擎。

    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是不好的。它不促进分离问题并导致意大利面代码。现在的标准方法就是上面的模板引擎。

    想要了解更多有关微模板的信息吗? Read the article by J. Resig

    +0

    嗨@Raynos你能解释我怎样才能执行一个'.html'文件与这个模板引擎node.js命令?据我了解,这只是改变foo来吧?或者我又被误解了一些东西? – Adam 2011-05-31 20:30:54

    +0

    @CIRK使用更大的模板引擎。小胡子,EJS,Jade,jQuery templ等等。看一下[express screencasts](http://expressjs.com/screencasts.html),虽然你使用express,但它有一个很棒的视图引擎 – Raynos 2011-05-31 20:33:53

    +1

    你好。 3个链接中的2个被打破。我不知道他们是否可以修复,但我很乐意访问这些材料:) – 2014-10-07 17:04:27

    使用模板引擎。从终端

    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/

    +0

    此链接已损坏 – 2014-10-07 17:10:12

    你可以尝试使用JooDee,一个节点网络服务器,它允许您嵌入服务器端的javascri在你的网页上。如果您熟悉Node和PHP/ASP,创建页面是一件轻而易举的事情。这里是一个什么样的页面看起来像下面的例子:

    <!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也可以让你暴露服务器的JavaScript通过附加属性的“客户”对象服务器端,并访问瓦尔到客户端没有努力所产生的“客户端的客户端对象javascript。

    https://github.com/BigIroh/JooDee