【问题标题】:node.js - using weld with express?node.js - 将焊接与快递一起使用?
【发布时间】:2011-11-26 15:09:44
【问题描述】:

我是 node.js 的新手,正在尝试使用 weld 在服务器端呈现模板并使用 express 作为路由器。

但是 node.js 的示例没有显示提供内容,并且不清楚这将如何与 express 一起工作:

var fs = require('fs'),
jsdom = require('jsdom');

jsdom.env(
  './test.html', 
  ['./jquery.js', './weld.js'],
  function(errors, window) {
    var data = [{ name: 'hij1nx',  title : 'code slayer' },
              { name: 'tmpvar', title : 'code pimp' }];
    window.weld(window.$('.contact')[0], data);
  }
);

帮助或示例将不胜感激。

【问题讨论】:

  • 有趣,我以前没见过这个。不知道我对此有何感想..
  • 是的,我想让它适用于 node,因为它类似于 Wicket 的方法,我非常喜欢 Java 应用程序。
  • 板(也由 nodejitsu 提供)是新的焊接:github.com/flatiron/plates

标签: html node.js express templating


【解决方案1】:

我认为这样的事情会奏效。不过还没有测试。

var fs = require('fs'), 
    jsdom = require('jsdom'),
    app = require('express').createServer();

app.get('/', function(req, res) {

    jsdom.env('./test.html', ['./jquery.js', './weld.js'], function(errors, window) {
        var data = [{
            name : 'hij1nx',
            title : 'code slayer'
        }, {
            name : 'tmpvar',
            title : 'code pimp'
        }];
        window.weld(window.$('.contact')[0], data);
        res.send(window.document.innerHTML); //after the welding part we just send the innerHTML
        window.close();  // to prevent memory leaks of JSDOM
    });

});
app.listen(3001);

【讨论】:

  • 谢谢伙计,效果很好。赞赏和接受。虽然一个小问题是为什么需要 [0] 索引?我假设这是 jQuery,它不需要返回一个值的选择器的索引。
  • 我不是一个有经验的 JQuery 用户,也不知道为什么,但是对于类选择器和 id 选择器,它返回和数组,即使它们可能是一个。
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2013-05-22
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 2016-12-01
相关资源
最近更新 更多