【发布时间】:2019-05-03 07:07:42
【问题描述】:
我正在开发一项功能,允许用户使用 nodejs 将图像上传到 mongodb:
-
我的问题:
从用户的请求中获取图像文件并执行 2 个任务:例如,将当前图像以集合名称“Origin_image”存储到 mongodb,然后调整当前图像大小并以集合名称“Thumbnail_image”存储到 mongodb
-
到目前为止我的解决方案:
我只是通过使用 multer-gridfs-storage 和 multer 来存储成功的原始图像,如下面的代码
const multer = require('multer'); const GridFsStorage = require('multer-gridfs-storage');
const multer = require('multer'); const 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); } }
有人想解决我的问题吗?谢谢!
【问题讨论】:
标签: node.js mongodb image-uploading multer multer-gridfs-storage