【问题标题】:How can I upload images in node from a POST request如何从 POST 请求上传节点中的图像
【发布时间】:2021-10-25 09:49:33
【问题描述】:

我想通过 POST 请求将数据和图像存储到我的 mongo 数据库中,但我不知道该怎么做。 在请求正文中,我有这样的 JSON 结构:

{
   "email":"asd@asd.asd",
   "name":"Asd",
   "shrooms":[
      {
         "name":"Agaricus bisporus",
         "time":"Fri Mar 19 11:11:25 GMT+01:00 2021",
         "gps":"46.25098652819107,20.149517092792898",
        "img1":"Base64 Encoded",
        "img2":"Base64 Encoded" 
     },
     {
         "name":"Unknown",
         "time":"Fri Mar 19 11:11:25 GMT+01:00 2021",
         "gps":"46.25098652819107,20.149517092792898",
        "img1":"Base64 Encoded",
        "img2":"Base64 Encoded" 
     }
   ]
}

根据蘑菇名称,我想将图像上传到单独的文件夹中。 我有一个路由器:

router.post('/autoUpload/:tourID', ctrlTour.autoUpload);

在 tour.component.js 中,我用这些数据做了很多事情,但我不知道如何上传 Base64 编码的图像。

到现在我只是把文件上传到我的网站,前端发送了多个请求,图片都是multer这样上传的。

router.post('/uploadShroom', uploadShroomImage.single('shroomImg'), ctrlShroom.postShroomImage );
router.post('/uploadNamelessShroom',uploadNamelessShroomImage.single('namelessShroomimg'), ctrlNamelessShroom.postNamelessShroomImage);

我希望它是自动的,所以 POST 请求可以完成所有工作。 有没有办法从控制器类调用这个中间件,或者我应该如何将多个图像上传到多个路径?

【问题讨论】:

    标签: javascript node.js express multer multer-gridfs-storage


    【解决方案1】:

    这里的正确方法是将图像保存在云存储中,例如 aws s3 并将其位置保存在 mongo db 中,而不是尝试保存图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 2015-11-20
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多