我正在开发一项功能,允许用户使用 nodejs 将图像上传到 mongodb:
我的问题 :
从用户的请求中获取图像文件并执行 2 个任务:例如,将当前图像存储到具有集合名称“Origin_image”的 mongodb 并调整当前图像的大小并存储到具有集合名称“Thumbnail_image”的 mongodb
到目前为止我的解决方案:
我只是通过使用 multer-gridfs-storage 和 multer 来存储成功的原始图像,如下面的代码
常量 multer = 要求('multer'); 常量 GridFsStorage = require('multer-gridfs-storage');
常量 multer = 要求('multer'); 常量 GridFsStorage = require('multer-gridfs-storage');
let storageFS = new GridFsStorage({ db: app.get("mongodb"), file: (req, file) => { return new Promise((resolve, reject) => { crypto.randomBytes(16, (err, buf) => { if (err) { return reject(err); } const filename = file.originalname; const fileInfo = { filename: filename, bucketName: 'images' }; resolve(fileInfo); }); }); } }); var upload = multer({ storage: storageFS }).single('image'); exports.uploadImage = async function (req, res) { try { upload(req, res, function (err) { if (err) { return res.send(err) } res.json({ status: true, filePath: req.file.originalname }); }); } catch (error) { res.send(error); } }
有没有人有任何想法来解决我的问题?谢谢 !