我正在尝试使用GridFS和MongoDB在我的NodeJS应用程序中上传图片。我想在图像上传到MongoDB之前压缩它,并且我已经共享了GridFS中间件。
我想知道我应该把压缩代码放在哪里,或者是否有更好的压缩图像的方法?
require('dotenv').config();
const multer = require('multer');
const GridFsStorage = require('multer-gridfs-storage');
const Grid = require('gridfs-stream');
const Mongoose = require('mongoose');
const Mongouri = process.env.MONGO_URL;
let conn = Mongoose.connection;
let gfs;
conn.once('open',()=>{
gfs = Grid(conn.db,Mongoose.mongo);
gfs.collection('Posts');
});
//defining the middleware for multer so this will be called everytiime a new image is uploaded using multer
let storage = new GridFsStorage({
url:Mongouri,
file:(req,file)=>{
return new Promise(
(resolve,reject)=>{
const fileInfo = {
filename:Mongoose.Types.ObjectId()+file.originalname,
bucketName:"Posts"
};
resolve(fileInfo);
}
);
}
});
//initialising multer with the middleware
const upload = multer({storage});
module.exports = upload;发布于 2021-01-05 23:46:17
在将图像保存到DB之前,Sharp是一个更好的压缩工具。来源- Sharp npm module
https://stackoverflow.com/questions/65581244
复制相似问题