Mand du løber på den forkerte vej. Jeg har allerede forklaret i din tidligere spørgsmålsanmodning, at Multer bruges til at gemme filer i et fildisksystem og ikke direkte i din database. Til det skal du bruge GRIDFS.
Kommer til dit nuværende spørgsmål.
app.post('/Upload', upload.single('solution') ,function (req, res, next) {
console.log(req.file);
});
Her er upload.single('solution')
- kalder en funktion Upload og filnavnet er en løsning, men det er tydeligt nok, at det ikke er tilgængeligt her.
brug denne type format - dokumentation af 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 })
Lagringsdelen der bruges til at give stien til, hvor din fil skal gemmes, og filnavnsektionen bruges til at lave ændringer til det filnavn, du gerne vil have.
Læs venligst dokumentationen, for det vil hjælpe. Når vi bruger tredjepartsmoduler, skal vi anerkende de oplysninger, de allerede har givet, så vi nemt kan bruge deres arbejde.
Lad mig gøre det lettere for dig. Her er færdiglavet kode, der virker.
Multer kaster mærkelig fejl under upload af fil via ng-fil upload
Tjek den tråd. Spørgsmålet blev rejst af mig - problemet der var, at jeg sendte filer i array-format, som i flere filer på én gang. Hvis du ikke gør det, skal du bare ændre ng-file-upload-segmentet for at bruge eksemplet med enkelt upload-demo og på serversiden erstatte nodejs-koden .array
med .single
og tingene vil fungere, som du vil have dem til at fungere - givet at du vil bruge et fildisksystem til at gemme filer.
Jeg gentager, at denne metode ikke hjælper dig med at gemme filen i mongodb direkte.
Sig til, hvis du har brug for yderligere afklaring.