findOne NodeJS MongoDB pilote

J'ai des données JSON comme vous le voyez ci-dessous dans une collection appelée "l'anglais", pour lequel je suis la mise en place d'une api REST avec nodejs application à l'aide de la MongoDB pilote. Si je fais le suivant, je reçois toutes les données JSON renvoyé dans le navigateur.

app.get('/sentences', function (req, res){

     db.collection('english', function(err, collection) {
        collection.find().toArray(function(err, items) {

            res.send(items);
        });
    });

})

Cependant, lorsque j'essaie d'aller à /sentences/1 pour obtenir un enregistrement, l'application se bloque (la demi-lune dans l'onglet du navigateur tourne lentement) et il n'y a pas d'erreur connecté. Est-il quelque chose de mal avec la façon dont je suis en train de faire ce findOne?

app.get('/sentences/:id', function(req,rest){

     var query = { 'question' : req.params.id };
     console.log(query);
     console.log('query');

    db.collection('english', function(err, collection) {

        collection.findOne(query, function(err, item) {
            console.log(err);
            res.send(item);
        });
    });
});

Données JSON

[
  {
    "_id": "526c0e21977a67d6966dc763",
    "question": "1",
    "uk": "blah blah blah",
    "us": "blah blah balh"
  },
  {
    "_id": "526c0e21977a67d6966dc764",
    "question": "2",
    "uk": "Tom went outside for a fag. I think he smokes too much!",
    "us": "Tom went outside for a cigarette. I think he smokes too much!"
  },
  {
    "_id": "526c0e21977a67d6966dc765",
    "question": "3",
    "uk": "Do you fancy going to the cinema on Friday?",
    "us": "How about going to the movies on Friday"
  }
]

Mise à jour

Ce qui se passe, c'est que l'application est finalement timing et je reçois un No data received message dans le navigateur.

OriginalL'auteur Leahcim | 2013-10-28