2011-09-28 6 views
9

저는 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.js를위한 예는 콘텐츠를 제공 보여주고,이 명시 적으로 어떻게 작동하는지에 퍼지 생각하지 않습니다하지만

.

+0

흥미롭게도, 나는 이것을 보지 못했습니다. 내가 그것에 대해 어떻게 생각하는지 잘 모르겠다 .. – Chance

+0

Wicket의 접근법과 비슷하기 때문에 노드에서이 작업을하고 싶다. 자바 애플리케이션에 정말 마음에 든다. – 7zark7

+2

플레이트 (또한 nodejitsu에 의해) 새로운 용접입니다 : https://github.com/flatiron/plates – timoxley

답변

3

이런 식으로 생각합니다. 그래도 테스트하지 않았습니다.

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

고마워, 좋은 작품. 감사와 인정. 하나의 사소한 질문이 왜 [0] 색인의 필요성입니까? 이 값은 jQuery로 가정합니다.이 값은 하나의 값을 반환하는 선택기에 대한 인덱스가 필요하지 않습니다. – 7zark7

+0

저는 JQuery에 익숙하지 않은 이유를 잘 모르는 사용자이지만 클래스 선택기와 id 선택기 모두에 대해 반환 및 배열을 할 수 있습니다. –

관련 문제