Следующий фрагмент кода работает должным образом: он считывает файл, который был загружен с помощью multer [https://github.com/expressjs/multer] и передает его в gridfs. Im также смог вытереть это из gridfs также.Использование multer с опцией inmemory и потоковой передачей в gridfs mongodb
var target = gfs.createWriteStream({
filename: fileItem.originalname,
mode: 'w',
metadata: metaData
});
fs.createReadStream(tempFile)
.on('end', function() {
console.log('File read and stored');
})
.on('error', function (err) {
console.log('Error handling file ' + err);
})
.pipe(target);
// Attach new file to document list
target.on('close', function (file) {
filesUploadedList.push(file._id);
fileItem получен из итерации по файлу req.files.файлов, которые загружают файлы.
Однако, я пытаюсь выяснить параметр inMemory для multer. Если я установил значение true, то в файле fileItem будет заполнен буфер. Просто отметить без этой опции буфер/содержимое fileItem пуст, поэтому в коде выше его чтения из файла fileItem.location.
Каков наилучший способ для заполнения цели содержимым? fs.createReadStream делает трубопровод в данный момент.
Спасибо.
J
может быть, вы заинтересованы : http://stackoverflow.com/questions/28357412/stored-files-directly-in-mongodb-with-gridfs-stream – Maxtermax