Я просто пытаюсь сохранить некоторые файлы в базе данных 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)