2017-06-28 1 views
1

Je crée une application météore dotée d'un système de connexion utilisateur et d'un bouton. Un utilisateur peut appuyer sur le bouton pour ajouter son nom d'utilisateur à une collection, jusqu'à ce qu'il soit supprimé par un super-utilisateur.Exportation des données utilisateur de Meteor vers le fichier .CSV

Je souhaite prendre note à chaque fois qu'un utilisateur clique sur le bouton et télécharger cette information dans un fichier .csv ou dans un format similaire. Ainsi, par exemple, l'utilisateur A appuie sur le bouton à l'instant t1, l'utilisateur B le presse à l'instant t2, l'utilisateur C le presse à t3, puis l'utilisateur A le presse à nouveau à l'instant t4. Je veux exporter un enregistrement de ces interactions dans un format sympa. *** Note: les clics sur les boutons ne sont pas stockés dans un tableau donc la solution à cette question (How to export JavaScript array info to csv (on client side)?) ne m'aide pas - à moins que je ne comprenne quelque chose, ce qui est totalement possible!

J'ai commencé à travailler sur ce tutoriel pour exporter des données depuis les applis météore (https://themeteorchef.com/tutorials/exporting-data-from-your-meteor-application) mais cela est rapidement devenu compliqué, et je ne suis pas sûr de savoir comment suivre les clics des boutons en utilisant cette méthode.

Cela semble être une tâche relativement simple. Existe-t-il une méthode de contournement facile ou commune qui me manque? Merci!

+0

double possible de [Comment exporter les informations de tableau JavaScript pour csv (côté client)?] (Https://stackoverflow.com/questions/14964035/how-to-export-javascript-array-info- to-csv-on-client-side) –

+0

Qui doit recevoir le fichier exporté et comment doivent-ils le recevoir? Directement depuis le navigateur? (dans ce cas, il s'agit toujours de l'utilisateur actuel) Ou par e-mail (auquel cas il peut s'agir d'un utilisateur spécifique) –

+0

Seul moi-même et/ou un compte admin spécifique devrait pouvoir recevoir le fichier, il semble donc Je veux le faire par e-mail. (J'ai vraiment besoin des données pour mes propres recherches, donc peu importe si elles peuvent être téléchargées depuis le navigateur ou non) –

Répondre

1

Désolé pour le retard, les vacances m'ont tenu loin. Comme vous utilisez Meteor, vous avez accès à une excellente API Mongo (docs) qui vous permet d'interroger et de transformer les données comme vous le souhaitez. Donc, simplement requête que vous défini votre collection Mongo comme Meteor (je vais utiliser ButtonClicks comme exemple)

let buttonClicks = ButtonClicks.find({}).fetch(); // Finds all button clicks 

transformer les données et utiliser le package Node fs (docs) pour écrire les données transformées à un. fichier csv.

buttonClicks = buttonClicks.map((click) => { 
    // transform your json to csv format here. 
    // I encourage you to write this yourself ;). 
}); 

fs.writeFile('buttonClicks.csv', buttonClicks, (err) => { 
    if (err) throw err; 
    console.log('The file has been saved!'); 
});