2011-06-29 7 views
1

Je suis nouveau à sequelize Node.js/jade, le secnario je veux aller est, dans un fichier de jade, je peux faire quelque chose comme:Utilisez squelize trouver en jade

-Item.find (id) .on ('succès'), fonction (retour) { p return.name p return.value })

Essayé ce deux ou trois fois mais n'a pas pu le faire fonctionner.

Merci.

Répondre

3

No.

Ce n'est pas comment fonctionnent les vues et les modèles. Nous ne pas parler à la base de données dans la vue.

Avant de rendre la vue, parlez à la base de données.

Code Psuedo:

Item.find(id).on("success", function(item) { 
    res.render(view, { 
    name: item.name, 
    value: item.value 
    }); 
}); 
+0

Mais il n'y a aucune raison de le faire. Sequelize peut aussi être vu comme le "modèle" qui parle à la base de données. Et, dans beaucoup d'applications, l'approche du modèle de graisse fonctionne mieux. –

2

ce n'est pas un problème spécifique à sequelize, mais un jade/un mvc. Tout d'abord, en suivant le modèle mvc, vous devez charger toutes les données nécessaires dans le contrôleur et les transmettre ensuite à la vue. En outre, le problème que vous rencontrez existe en raison de l'incompatibilité de Jade avec les appels de fonction asynchrones. Parce que sequelize fonctionne de manière asynchrone, vous ne pourrez pas obtenir vos données dans la vue.