Estoy tratando de cargar archivos en mongodb usando multer gridFS. Tengo un problema en el servidor: req.file no está definido. Usando upload.single('file') que debería darme href en mi lado del cliente de mi entrada.
Obtengo el href del archivo que elegí en el cliente, pero desafortunadamente no lo creo en mi base de datos.
Intermediario de GridFS:
const crypto = require('crypto') const multer = require('multer') const {GridFsStorage} = require('multer-gridfs-storage') const path = require('path') const storage = new GridFsStorage({ url: process.env.DB_CONNECT, 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, bucketName: 'uploads' }; resolve(fileInfo); }); }); } }); module.exports = multer({ storage: storage });Ruta: el error uploadFile no reconoce req.file de upload.single('file'):
const router = require('express').Router(); const FileController = require('../controllers/FileController') const upload = require('../middleware/GridFS') //upload new file router.post('/uploadFile', upload.single('file') , (req,res) =>{ console.log(req.file) // not define //send to mongodb }) // update exist file router.post('/updateFile', FileController.updateFile) module.exports = router;