En utilisant nodejs et express, j'aimerais retourner un ou plusieurs objets (array) en utilisant JSON. Dans le code ci-dessous, je retourne un objet JSON à la fois. Cela fonctionne mais ce n'est pas exactement ce que je veux. La réponse produite n'est pas une réponse JSON valide puisque j'ai plusieurs objets.
Je suis bien conscient que je pourrais simplement ajouter tous les objets à un tableau et renvoyer ce tableau spécifique dans res.end. Cependant, je crains que cela ne devienne lourd à traiter et gourmand en mémoire.
Quelle est la bonne façon d'y parvenir avec nodejs ? Est-ce que query.each est la bonne méthode à appeler ?
app.get('/users/:email/messages/unread', function(req, res, next) {
var query = MessageInfo
.find({ $and: [ { 'email': req.params.email }, { 'hasBeenRead': false } ] });
res.writeHead(200, { 'Content-Type': 'application/json' });
query.each(function(err, msg) {
if (msg) {
res.write(JSON.stringify({ msgId: msg.fileName }));
} else {
res.end();
}
});
});