2016-11-02 4 views
0

Ich habe ein Problem beim Erstellen meiner ersten RESTapi App.Datei ist nicht erforderlich Option mit Multer (MEAN-Stack)

Ich habe ein Multer-Modul enthalten, um eine Datei mit Formular zu laden und alles funktioniert gut, bis ich die Datei bereitstellen.

Wenn die Datei nicht bereitgestellt wird, stürzt meine App ab. Wenn jemand eine Postroute in meiner API auslöst, um eine neue Entität zu erstellen (zum Beispiel mit curl), stürzt die App ab.

Es scheint, dass die Datei immer benötigt wird, wenn multer zum Hochladen verwendet wird.

Mein router.post sieht wie folgt aus:

router.post('/movies', upload.single('image'), function(req, res, next) { 
var movie = new Movie(req.body); 
movie.fileName = req.file.filename; 
movie.save(function(err, movie){ 
    if(err) return next(err); 
    res.json(movie); 
}); }); 

Die Frage ist also:

Ist es möglich, die „Datei“ Feld leer und noch Daten verarbeiten Speichern zu verlassen, einfach ohne Feld Datei db ? Vielen Dank im Voraus!

+0

können Sie Ihr Schema Code laden ....... –

Antwort

1

Es ist nicht so, dass multer eine Datei benötigt - Sie müssen nur verhindern, dass req.file undefiniert ist. Sie referenzieren req.file.filename ohne zu überprüfen, ob req.file existiert. Einfach überprüfen, ob es vorhanden ist, und wenn ja, die Dateinamen auf dem Filmset:

router.post('/movies', upload.single('image'), function(req, res, next) { 
    var movie = new Movie(req.body); 
    if(req.file) movie.fileName = req.file.filename; 
    movie.save(function(err, movie){ 
     if(err) return next(err); 
     res.json(movie); 
    }); 
}); 
+0

Ja ich schon genau habe wie du gesagt hat. Es war so einfach. Ich denke, als ich diese Frage stellte, war mein Problem ein Mangel an Schlaf: D Aber danke trotzdem, ich werde deine Antwort als eine richtige markieren – JavaEvgen

Verwandte Themen