Невозможно хранить файлы в mongodb Atlas с помощью gridfs - PullRequest
0 голосов
/ 06 июля 2019

Я просто пытаюсь сохранить некоторые файлы в базе данных mongodb Atlas с помощью Gridfs Но когда я нажимаю кнопку загрузки, это показывает, что соединение с базой данных не открыто.

mongoose.connect(mongodbURL,{useNewUrlParser:true}).then((conn)=>{
    console.log("Database Connection Successful");
}).catch(err=>{
    console.log(err);
});

let gfs;

connection.once('open',()=>{
    gfs = Grid(connection.db,mongoose.mongo);
    gfs.collection('uploads');
})

var storage = new GridFsStorage({
    url: mongodbURL,
    file: (req, file) => {
      return new Promise((resolve, reject) => {
        crypto.randomBytes(16, (err, buf) => {
          if (err) {
            return reject(err);
          }
          const filename = buf.toString('hex') + path.extname(file.originalname);
          const fileInfo = {
            filename: filename,
            root:'uploads'
          };
          resolve(fileInfo);
        });
      });
    }
});

const upload = multer({ storage });

router.post('/dashboard/uploads', upload.single('file') ,(req,res)=>{
    res.json({file:req.file});
})

Ошибка: соединение с базой данных должно быть открыто для хранения файлов в GridFSStorage._handleFile (D: \ Web Development \ e-portal \ node_modules \ multer-gridfs-storage \ lib \ gridfs.js: 341: 17) в D: \ Web Development \ e-portal \ node_modules \ multer \ lib \ make-middleware.js: 144: 17 в allowAll (D: \ Web Development \ e-portal \ node_modules \ multer \ index.js: 8: 3) at wrappedFileFilter (D: \ Web Development \ e-portal \ node_modules \ multer \ index.js: 44: 7) в автобусе. (D: \ Web Development \ e-portal \ node_modules \ multer \ lib \ make-middleware.js: 114: 7) на Busboy.emit (events.js: 198: 13) на Busboy.emit (D: \ Web Development \ e-portal \ node_modules \ busboy \ lib \ main.js: 38: 33) на PartStream. (D: \ Web Development \ e-portal \ node_modules \ busboy \ lib \ types \ multipart.js: 213: 13) на PartStream.emit (events.js: 198: 13) в HeaderParser. (D: \ Web Development \ e-portal \ node_modules \ dicer \ lib \ Dicer.js: 51: 16) в HeaderParser.emit (events.js: 198: 13) в HeaderParser._finish (D: \ Web Development \ e-portal \ node_modules \ dicer \ lib \ HeaderParser.js: 68: 8) на SBMH. (D: \ Web Development \ e-portal \ node_modules \ dicer \ lib \ HeaderParser.js: 40: 12) на SBMH.emit (events.js: 198: 13) на SBMH._sbmh_feed (D: \ Web Development \ e-portal \ node_modules \ streamsearch \ lib \ sbmh.js: 159: 14) в SBMH.push (D: \ Web Development \ e-portal \ node_modules \ streamsearch \ lib \ sbmh.js: 56: 14)

...