MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Съхранение на файл в MongoDB с помощта на Multer в Mongoose

Човек, ти бягаш по грешен път. Вече обясних в предишната ви заявка за въпрос, че Multer се използва за записване на файлове във файловата дискова система, а не директно във вашата база данни. За това трябва да използвате GRIDFS.

Стигаме до текущия ви въпрос.

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

Тук upload.single('solution') - извиква функция Upload и предаденото име на файла е решение, но е достатъчно очевидно, че не е достъпно тук.

използвайте този тип формат - документация на 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 })

Частта за съхранение там се използва, за да даде път до мястото, където трябва да бъде запазен вашият файл, а секцията за име на файла се използва за извършване на промени в името на файла, което искате да имате.

Моля, прочетете документацията, защото това ще помогне. Когато използваме модули на трети страни, трябва да потвърдим информацията, която те вече са предоставили, за да можем лесно да използваме тяхната работа.

Позволете ми да ви улесня. Ето готов код, който работи.

Multer хвърля странна грешка при качване на файл чрез качване на ng-file

Отиди да провериш темата. Въпросът беше повдигнат от мен - проблемът беше, че изпращах файлове във формат на масив, както в няколко файла наведнъж. Ако не правите това, просто променете сегмента ng-file-upload, за да използвате демонстрационния пример за единично качване и от страна на сървъра nodejs код заменете .array с .single и нещата ще работят по начина, по който искате да работят – като се има предвид, че искате да използвате файлова дискова система за съхранение на файлове.

Повтарям, че този метод няма да ви помогне да запазите файла директно в mongodb.

Уведомете ме, ако имате нужда от допълнителни разяснения.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $inc

  2. Кога да затворите връзката с базата данни MongoDB в Nodejs

  3. mongodb - създайте doc, ако не съществува, в противен случай натиснете към масив

  4. Какво да знаете, когато започнете да работите с MongoDB в производството - десет съвета

  5. Драйверът на Mongodb C# връща само съвпадащи поддокументи в масива