在上传到GridGS之前如何调整图像大小?

时间:2020-10-08 11:15:03

标签: node.js multer gridfs

此页面上的位置以及如何添加调整大小功能?我不太清楚在哪里可以找到文件来调整大小,我已经尝试过在multer的滤镜上进行调整。

const multer = require('multer');
const crypto = require('crypto');
const path = require('path');
const sharp = require('sharp');
const GridFsStorage = require('multer-gridfs-storage');
const { connection } = require('../../server');

// FILES STORAGE CONFIGURATION

const { url } = connection.client.s;

// Storage
const storage = new GridFsStorage({
    url,
    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',
                };
                console.log('img info', fileInfo);
                resolve(fileInfo);
            });
        });
    },
});

const fileFilter = (req, file, cb) => {
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
        cb(null, sharp().resize(150, 150));
    } else {
        cb(null, false);
    }
};

const upload = multer({
    storage,
    fileFilter,
});

module.exports = { upload };

我可以在此代码中添加Sharp函数吗?如果没有,您可以向我推荐有关如何使用multer和gridgs进行操作的文档吗?

0 个答案:

没有答案