0

我将 GridFsStorage 与 multer 一起使用。这是我输出 TypeError 的代码。

const mongoURI=DB


const conn = mongoose.createConnection(mongoURI);

let gfs;
conn.once('open', function() {
  //STREAM INITIALIZING
  gfs=GridFSBucket(conn.db, mongoose.mongo)
  gfs.collection('uploads')
})



 gfs.files.findOne({filename:req.params.filename},(err,file)=>{
    const readstream = gfs.createReadStream(file.filename)
    readstream.pipe(res)
  })

4

1 回答 1

0

我也有这个问题。原因是 .GridStore 在 mongoose 6.0.5 之后被弃用。

要解决此问题,请创建第二个变量,其名称为:

conection.once('open', () => {
  //Init Stream
  gridfsBucket = new mongoose.mongo.GridFSBucket(conection.db, {
    bucketName: 'uploads'
  })
  gfs = Grid(conection.db, mongoose.mongo);
  gfs.collection('uploads');
})

为了获取文件,我使用了这种形式的变量:

const readStream = gridfsBucket.openDownloadStream(file._id);
readStream.pipe(res)
于 2022-01-18T20:36:58.133 回答