我认为使用 multer 是非常方便的方法。
您可以使用 multer 将图像上传到文件夹中,并将参考 URL 存储在 MongoDB 中。如果您愿意托管您的 MERN 应用程序,这也很重要。您不需要任何第三方帮助,例如 firebase 或 Cloudinary 上传和身份验证(您已经这样做了)。
因此,您可以使用自己的功能托管自己的应用程序。没有外部成本(仅适用于域:D)
这可能会帮助您获得一个简短的想法。
const InstrumentImageStore = multer.diskStorage({
destination: function (req, file, callback) {
const userId = req.userId;
const dir = `instrumentImgs/${userId}`;
fs.exists(dir, (exist) => {
if (!exist) {
return fs.mkdir(dir, (error) => callback(error, dir));
}
return callback(null, dir);
});
},
filename: function (req, file, callback) {
callback(null, Date.now() + "-" + file.originalname);
},
});
router.post(
"/add/instrument",
[isauth, multer({ storage: InstrumentImageStore }).array("imageArr", 5)],
//isauth is another middleware that restricts requests using JWT
instrumentController.addInstrument
);