2011-09-28 6 views
9

Tôi mới sử dụng node.js và cố gắng sử dụng weld để hiển thị mẫu ở phía máy chủ và sử dụng Express làm bộ định tuyến.node.js - sử dụng mối hàn với express?

Tuy nhiên các ví dụ cho Node.js không hiển thị phục vụ nội dung, và tôi mờ về cách thức này sẽ làm việc với tốc:

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); 
    } 
); 

Trợ giúp hoặc ví dụ sẽ được đánh giá cao.

+0

Thú vị, tôi chưa từng thấy điều này trước đây. Không chắc chắn làm thế nào tôi cảm thấy về nó .. – Chance

+0

Vâng tôi muốn có được điều này làm việc cho nút, vì nó tương tự như cách tiếp cận của Wicket, mà tôi thực sự thích cho các ứng dụng Java. – 7zark7

+2

Tấm (cũng bởi nodejitsu) là Weld mới: https://github.com/flatiron/plates – timoxley

Trả lời

3

Tôi nghĩ rằng một cái gì đó như thế này sẽ làm việc. Chưa thử nghiệm.

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

Cảm ơn bạn đời, công trình tuyệt vời. Được đánh giá cao và được chấp nhận. Mặc dù một câu hỏi nhỏ là lý do tại sao sự cần thiết cho chỉ số [0]? Tôi cho rằng đây là jQuery, không yêu cầu chỉ mục cho các bộ chọn trả về một giá trị. – 7zark7

+0

Tôi không phải là người dùng có kinh nghiệm với JQuery và không chắc chắn lý do tại sao, nhưng đối với cả bộ chọn lớp và bộ chọn id, nó trả về và mảng, mặc dù chúng có thể là một. –