Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

352
Vistas
Atascado el error: Typeerror: grid.mongo.objectID no es un constructor

Estaba tratando de cargar imágenes en la base de datos mongodb. Y luego obtuve este error que no puedo resolver. ¿Alguien puede ayudar?

El código después de todas las declaraciones requeridas se muestra a continuación

 // MONGOOSE CONNECTION const conn = mongoose.createConnection(mongoURI); // GRID FS let gfs; conn.once('open' , ()=>{ // init stream gfs = Grid(conn.db , mongoose.mongo); gfs.collection('uploads'); }); // MULTER const storage = new GridFsStorage({ url: mongoURI, 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); }); }); } }); const upload = multer({storage}).single('file');

Luego, cuando traté de mostrar el objeto de archivo guardado en la base de datos usando gfs.file.find(), funcionó

 app.get("/files/:filename" , (req , res)=>{ gfs.files.findOne({filename : req.params.filename} , (err , file)=>{ if(!file){ return res.json({err : "No file exists"}); } return res.json(file) }) });

El código anterior funcionó y mostró el objeto json cuando se llamó. Pero cuando intenté mostrar la imagen no como json sino como la imagen real usando createReadStream, se rompió

 app.get("/image/:filename" , (req , res)=>{ gfs.files.findOne({filename : req.params.filename} , (err , file)=>{ if(!file){ return res.json({err : "No file exists"}); } // file exists // if it is an image if(file.contentType === 'image/jpeg' || file.contentType === 'image/png'){ // Read output to browser const readstream = gfs.createReadStream(file.filename); readstream.pipe(res); } else{ res.status(404).json({err : "not an image"}); } }); });
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda