【问题标题】:What is proper way to store links of uploaded files using multer?使用 multer 存储上传文件链接的正确方法是什么?
【发布时间】:2023-03-20 01:58:02
【问题描述】:

使用 multer 上传多个文件后,它会给我每个文件的路径,例如:

"photo" : [ 
        "public/uploads/1/store/aa17c810-0178-11ea-adf6-c9fa892f6902.png",
...
    ],

这可以通过网址“http://localhost:3000/public/uploads/1/store/aa17c810-0178-11ea-adf6-c9fa892f6902.png”访问。

但是在 React(或者任何前端)中,我必须在这个 url 的前面加上斜杠,如下所示(假设 imageUrl 的值是“public/uploads/1/store/aa17c810-0178-11ea-adf6-c9fa892f6902 .png":

<div>
       <img src={"/" + imageUrl} />
 </div>

如果我不把“/”放在前面,路径被称为相对路径。

如果我使用那个imageUrl而不在那个img src的头部附加“/”,问题是在像http://localhost:3000/product这样的页面url中,它会尝试相对检查路径,然后从“@”获取文件987654323@",文件不存在。

所以我的问题是我应该把“/”放在multer返回的每个文件路径中,然后将它存储到mongodb吗?

还是应该在每次使用 img 标签时都输入“/”?

最标准的首选方式是什么?

【问题讨论】:

    标签: node.js multer


    【解决方案1】:

    我会保存整个路径,包括 MongoDB 中的第一个斜杠,因为以“/”开头的路径有点表明它从根开始。 (在这种情况下,是您项目的根目录。)

    此外,使用此功能的潜在性能提升:

    <div>
        <img src={imageUrl} />
    </div>
    

    取而代之的是:

    <div>
        <img src={ "/" + imageUrl} />
    </div>
    

    如果不是不存在的话可以忽略不计,但是代码看起来有点干净。

    【讨论】:

      【解决方案2】:

      当我使用 multer 时,我也遇到了这类问题。我认为在你的情况下,只需在 mongodb 的每个路径中存储/使用 multer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 2015-08-08
        • 2012-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多