Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

354
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda