2017-12-06 6 views
0

Im mit React und Meteor. Ich muss Benutzern erlauben, Profilbilder hochzuladen.Datei-Upload mit Meteor + Reagieren fehlgeschlagen

Ive installiert diese Pakete:

cfs:standard-packages 
cfs:filesystem 

Ive definiert meine Sammlung in Images.js:

export const Images = new FS.Collection('images', { 
    stores: [new FS.Store.FileSystem('images', { path: '~/uploads' })], 
}); 

Diese Datei importiert wird, nicht in den Server JavaScript.

Es wird in meine React-Komponente (Code unten) importiert. Meine console.log protokolliert die Datei und zeigt mir keine Fehler. Ich sehe auch keine Fehler in Meteor Terminal.

import { Images } from '../../../api/images'; 

    const imgFormSubmit = e => { 
    e.preventDefault(); 

    const file = e.target.profile.files[0]; 
    console.log(file); 

    Images.insert(file, function(err, fileObj) { 
     //If !err, we have inserted new doc with ID fileObj._id, and 
     //kicked off the data upload using HTTP 
    }); 
    }; 

Wenn ich jedoch MongoDB ansehe, gibt es keine Tabelle namens images, also wurde nichts gespeichert. Ich habe auch keinen Datei- oder Upload-Ordner, der zu meinem Dateisystem hinzugefügt wurde.

Ich habe Autopublish und unsichere Pakete aktiviert.

Antwort

0

, wenn Sie wollen definierte eine verwaltete Sammlung Sie es tun müssen, um in sowohl Client und Server-Code. cfs ist vielleicht ein wenig unnahbar, weil es nicht die Form einer normalen Sammlungsdefinition hat, sondern unter der Haube.

Sie müssen images.js in Ihren Server-Startup-Code importieren.

+0

Nur für irgendjemanden, der diesen Thread fand, fand ich noch cfs: filesystem wirklich hart, mit zu arbeiten. Ich werde das Slingshot-Paket verwenden, wenn ich es starte (ich bin gerade dabei, mich lokal zu entwickeln). – Evans

+0

Ich ersetzte cfs mit Schleuder vor langer Zeit, viel bessere Lösung. –

0

cfs: Standard-Pakete, cfs: Dateisystem sind veraltet Verwendung MeteorFiles stattdessen. Es gibt einen Abschnitt in diesem Dokument, um es zu überprüfen.