首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GridFS和NodeJS在将图像存储到MongoDB之前对其进行压缩?

如何使用GridFS和NodeJS在将图像存储到MongoDB之前对其进行压缩?
EN

Stack Overflow用户
提问于 2021-01-05 22:54:19
回答 1查看 388关注 0票数 0

我正在尝试使用GridFS和MongoDB在我的NodeJS应用程序中上传图片。我想在图像上传到MongoDB之前压缩它,并且我已经共享了GridFS中间件。

我想知道我应该把压缩代码放在哪里,或者是否有更好的压缩图像的方法?

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2021-01-05 23:46:17

在将图像保存到DB之前,Sharp是一个更好的压缩工具。来源- Sharp npm module

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65581244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档