2011-09-28 17 views
9

Sono nuovo su node.js e sto tentando di utilizzare weld per eseguire il rendering dei modelli sul lato server e utilizzando express come router.node.js - utilizzo della saldatura con express?

Tuttavia gli esempi per node.js non mostra servire il contenuto, e sono confusi su come questo possa lavorare con espresso:

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

Guida o esempio sarebbe apprezzato.

+0

Interessante, non l'ho mai visto prima. Non so come mi sento a riguardo .. – Chance

+0

Sì, mi piacerebbe farlo funzionare per il nodo, in quanto è simile all'approccio di Wicket, che mi è piaciuto molto per le app Java. – 7zark7

+2

Piastre (anche per nodejitsu) è la nuova saldatura: https://github.com/flatiron/plates – timoxley

risposta

3

Penso che qualcosa del genere funzionerebbe. Non ho provato però.

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

Grazie amico, funziona alla grande. Apprezzato e accettato. Anche se una domanda minore è perché la necessità di [0] indice? Ho pensato che fosse jQuery, che non richiede l'indice per i selettori che restituiscono un valore. – 7zark7

+0

Non sono un utente esperto con JQuery e non sono sicuro del perché, ma per entrambi i selettori di classe e selettori di id restituisce e matrice, anche se potrebbero essere uno. –