MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Speichern einer Datei in MongoDB mit Multer in Mongoose

Mann, du läufst auf dem falschen Weg. Ich habe bereits in Ihrer vorherigen Frageanfrage erklärt, dass Multer verwendet wird, um Dateien im Dateiplattensystem und nicht direkt in Ihrer Datenbank zu speichern. Dazu müssen Sie GRIDFS verwenden.

Kommen wir zu deiner aktuellen Frage.

app.post('/Upload', upload.single('solution') ,function (req, res, next) {
    console.log(req.file);
});

Hier die upload.single('solution') - Ruft eine Funktion Upload auf und der übergebene Dateiname ist eine Lösung, aber es ist offensichtlich genug, dass sie hier nicht verfügbar ist.

Verwenden Sie diese Art von Format - Dokumentation von Multer

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

Der Speicherteil dort wird verwendet, um den Pfad anzugeben, wo Ihre Datei gespeichert werden muss, und der Dateinamenabschnitt wird verwendet, um Änderungen an dem Dateinamen vorzunehmen, den Sie haben möchten.

Bitte lesen Sie die Dokumentation, weil das hilft. Wenn wir Module von Drittanbietern verwenden, müssen wir die Informationen anerkennen, die sie bereits gegeben haben, damit wir ihre Arbeit problemlos verwenden können.

Lassen Sie mich es Ihnen leichter machen. Hier ist vorgefertigter Code, der funktioniert.

Multer gibt beim Hochladen einer Datei per ng-Datei-Upload einen seltsamen Fehler aus

Geh mal in den Thread. Die Frage wurde von mir aufgeworfen - das Problem war, dass ich Dateien im Array-Format sendete, also in mehreren Dateien gleichzeitig. Wenn Sie dies nicht tun, ändern Sie einfach das ng-file-upload-Segment, um das Demobeispiel für einen einzelnen Upload zu verwenden, und ersetzen Sie auf der Serverseite den nodejs-Code .array mit .single und die Dinge werden so funktionieren, wie Sie es möchten - vorausgesetzt, Sie möchten das Datei-Festplattensystem zum Speichern von Dateien verwenden.

Ich wiederhole, dass diese Methode Ihnen nicht hilft, die Datei direkt in Mongodb zu speichern.

Lassen Sie mich wissen, wenn Sie weitere Erläuterungen benötigen.