42 votes

Passer des objets au client dans le noeud + express + jade?

J'ai un joli poids lourd de la requête sur le serveur que les résultats dans une nouvelle page de rendu, et je voudrais passer le long de certains des résultats de la requête du client (en javascript tableau d'objets). Ceci est la base, donc je n'ai pas à effectuer une requête JSON plus tard pour obtenir le même contenu (ce qui est quasi-statique). Les données seront utiles par la suite, mais pas au départ, je n'avais pas le mettre directement dans le document.

app.get('/expensiveCall', function(req, res) {
    // do expensive call
    var data = veryExpensiveFunction();
    res.render('expensiveCall.jade', {
        locals: {
                data: data,
                }
        });
    });
});

de données est un tableau d'objets et quelques-unes seulement sont d'abord utilisés. J'aimerais réussir à l'intégralité des données de plus ou de certains sous-ensembles (selon la situation). Ma jade ressemble normal de jade, mais je voudrais inclure quelque chose comme

<script type="text/javascript">
var data = #{data};
</script>

mais cela ne fonctionne pas (c'est un tableau d'objets).

89voto

Adrien Points 5142

Vous ne pouvez pas insérer un objet JS de la sorte, mais vous pouvez le JSON.stringify auparavant:

 <script type="text/javascript">
  var data = !{JSON.stringify(data)};
</script>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X