Próbuję użyć gridfs do uploadu zdjęć na stronę. W trakcie pisania kodu w konsoli pojawił mi się taki komunikat:
GridStore is deprecated, and will be removed in a future version. Please use GridFSBucket instead.
Muszę ten kod
let gfs;
conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('uploads');
});
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 });
Zastąpić odpowiednikiem z gridfs bucket, więc napisałem to:
let gfb;
conn.once('open', () => {
gfb = Grid(conn.db, mongoose.mongo);
gfb.collection('uploads');
});
const bucket = new mongoose.GridFSBucket({
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);
});
});
}
});
W tym miejscy pojawia się błąd:
mongoose.GridFSBucket is not a constructor.
Jak mam poprawić napisany kod lub jak poprawnie napisać go od nowa?