De modèle.find().toArray() en prétendant ne pas avoir .méthode toArray()

Je suis très nouveau à nodejs et mongodb et suis en train de rassembler mes propres blogs de l'application. J'ai un problème en essayant de requête par le biais de mon "Blog" modèle pour ceux avec un nom d'utilisateur spécifique. Lorsque j'essaie d'exécuter

var userBlogs = function(username) {
  ub = Blog.find({author: username}).toArray();
  ub = ub.reverse();

};

J'obtiens une erreur.

TypeError: Object #<Query> has no method 'toArray'

Je sais globales sont mauvais, mais je viens d'essayer de le faire fonctionner. Les Mongo de la documentation prétend qu'un curseur est retourné, ce qui peut avoir de la méthode toArray() appelée sur elle. Je n'ai aucune idée de pourquoi ça ne fonctionne pas. Voici mon schéma/modèle de création:

var blogSchema = mongoose.Schema({
  title: {type:String, required: true},
  author: String,
  content: {type:String, required: true},
  timestamp: String
});
var Blog = mongoose.model('Blog', blogSchema);

Voici le /login et /readblog demandes

app.get('/readblog', ensureAuthenticated, function(req, res) {
  res.render('readblog', {user: req.user, blogs: ub})
})

app.get('/login', function(req, res){
  res.render('login', { user: req.user, message: req.session.messages });
});
app.post('/login', 
  passport.authenticate('local', { failureRedirect: '/login'}),
  function(req, res) {
    userBlogs(req.user.username);
    res.redirect('/');
  });

Le résultat de fin est censé fonctionner avec ce Jade:

extends layout

block content
    if blogs
        for blog in blogs
            h2= blog[title]
            h4= blog[author]
            p= blog[content]
            h4= blog[timestamp]
    a(href="/writeblog") Write a new blog

Comment puis-je obtenir de la requête à la sortie d'un tableau, ou même de travailler comme un objet?

  • devrait ajouter "mangouste" à vos tags
InformationsquelleAutor Rorschach120 | 2013-12-31