Veuillez regarder l'image suivante, de http://mongoexplorer.com/:
J'ai essayé de travailler avec GridFS, en faisant référence à https://github.com/jamescarr/nodejs-mongodb-streaming. Les fichiers que j'ai téléchargés reviennent bien et le flux renvoyé par la fonction get suivante semble correct.
var gridfs = (function () {
function gridfs() { }
gridfs.get = function (id, fn) {
var db, store;
db = mongoose.connection.db;
id = new ObjectID(id);
store = new GridStore(db, id, "r", {
root: "fs"
});
return store.open(function (err, store) {
if (err) {
return fn(err);
}
return fn(null, store);
});
};
return gridfs;
})();
En utilisant http://mongoexplorer.com/, j'ai téléchargé des fichiers dans GridFS pour tester, mais ils semblent cassés lorsque j'utilise le code node ci-dessus pour les récupérer.
C'est alors que j'ai remarqué la différence entre filename / fileName. En regardant ici /node_modules/mongodb/lib/mongodb/gridfs/gridstore.js, j'ai vu la référence à filename avec un 'N' en minuscule, mais dans mon GridFS, c'est fileName avec un 'N' en majuscule.
D'accord, juste pour rire, je l'ai changé en minuscules dans GridFS, mais je continue à rencontrer une certaine corruption dans le flux (code node ci-dessus) lors de la récupération de fichiers téléchargés avec http://mongoexplorer.com/. En cliquant sur Enregistrer sous... dans http://mongoexplorer.com/, cependant, mes fichiers reviennent parfaitement.
Pour revenir à ma question, (puisque mes tests n'ont pas semblé prouver quoi que ce soit), je me demande lequel est correct : filename avec un 'N' en minuscule, ou fileName avec un 'N' en majuscule?