sql >> Database teknologi >  >> NoSQL >> MongoDB

Lagring af en fil i MongoDB ved hjælp af Multer i Mongoose

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.



  1. Redis Pub/Sub ServiceStack, annullerer tråden

  2. Sådan annullerer du et job i kø i Laravel eller Redis

  3. Lagring null vs slet ikke at gemme nøglen i MongoDB

  4. Sådan sletter du N antal dokumenter i mongodb