Comment exporter des nœuds csv
Hé, je suis en train d'exporter un fichier csv à partir de node.js (en tirant sur les données mongodb). J'ai déjà les données extraites et séparées par des virgules et tout, mais maintenant, je suis à essayer de comprendre comment l'envoyer... je suis coller ce code dans mon fichier de routes. Des conseils sur la façon de prendre le tableau de données et de les envoyer à un utilisateur de droite pour télécharger sur demande.
voici le code: (j'ai tenté le bas de la partie du code à la deuxième fonction)
exports.downloadContacts = function(req, res) {
async.waterfall([
function(callback) {
var source = [];
Friend.find({userId: req.signedCookies.userid}, function(err, friends) {
if(err) {console.log('err with friends for download');
} else {
var userMap = {};
var friendIds = friends.map(function (user) {
userMap[user.friend_id] = user;
return user.friend_id;
});
console.log(friends);
User.find({_id: {$in: friendIds}}, function(err, users) {
if(err) {console.log(err);
} else {
for(var i = 0; i < users.length; i++) {
console.log('users')
//console.log(users[i]);
source.push(users[i].firstNameTrue, users[i].lastNameTrue, users[i].emailTrue, users[i].phone, users[i].emailList, users[i].phoneList)
}
console.log(source);
callback(null, source);
}
});
}
});
}
],
function(err, source) {
var result = [];
res.contentType('csv');
csv()
.from(source)
.on('data', function(data){
result.push(data.join());
})
.on('end', function(){
res.send(result.join('\n'));
});
});
};
source d'informationauteur Lion789
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé quelque chose comme ça avec un type de contenu "application/octet-stream"
ou tout simplement
Express send() docs.
Voici ce que j'ai fait:
Salut les gars @VierTD réponse, vous devez utiliser json2csv de construire des données au format csv à partir de données mongodb
Package De Mise À Jour.json avec des avec des dépendances
Créer le json2CSV objet, rappelez-vous ceci est la cartographie de votre document (table db) afin de noms sur les "champs" doit correspondre à celui de la table db, fieldNames sont à vous, mais sont également importantes puisqu'elles sont le fichier CSV des noms de colonne
Envoyer des données au format csv pour client
Ce code montre comment exporter des fichiers csv basé sur mongo db document (table de base de données)
J'ai créé un dépôt github très brève d'échantillonnage de l'idée, également créé une base de données avec des données factices à Mongo Laboratoire De Site Web donc, ce code sera exécuté immédiatement dans votre ordinateur.@VietTD réponse!
Dans le cas où vous êtes intéressé à tester ce code n'oubliez pas de changer les lignes suivantes
Changement db url (l'Utilisateur de votre propre db cela fonctionne, mais c'est seulement pour montrer fins ;D)
Changer de cible du document (ou de la table db)
Document de changement de colonnes (ou de la db de la table les champs de la colonne)
Enfin vous CSV titre les noms de colonnes ainsi que votre nom de fichier CSV
Dernier mais pas moins
Sentez-vous svp libre pour améliorer l'exemple de code que je vais apprécier! ou il suffit de le télécharger et de regarder le code, il est déjà fourni avec la base de données de sorte qu'il sera facile à comprendre et à exécuter, dans un tel cas, vous n'avez pas de soins voici le code entier peut-être que vous voyez quelque chose d'intéressant:
Merci!
Je ne suis pas totalement sûr de ce que vous êtes en question, mais je pense que ce que vous cherchez peut être résolu par la mise à la Disposition du Contenu de l'en-tête. Jetez un oeil à cette réponse sur un autre un autre DONC, la question: https://stackoverflow.com/a/7288883/2320243.
Express-csv est un excellent module pour la rédaction de contenu csv de flux à partir d'une node.js serveur, qui sera envoyée comme une réponse au client (et téléchargé en tant que fichier). Très facile à utiliser.
Les docs: https://www.npmjs.com/package/express-csv
Lorsque vous transmettez un objet, vous devez ajouter les en-têtes explicitement (si vous voulez). Voici mon exemple à l'aide de npm mysql
J'ai trouvé une solution à ce http://nikgrozev.com/2017/05/10/mongo-query-to-CSV-download-expressjs/
Mot-clé