【问题标题】:How te get an element from .fields [closed]如何从.fields中获取元素[关闭]
【发布时间】:2021-12-03 01:11:24
【问题描述】:

我无法从路由器获得的req.files 获取属性文件名。这是我得到的:

这就是我一直在尝试获取每个文件名的方法(在此示例中我只使用了 2 张图片,但我可以获得两张以上的图片,这就是我使用 forEach 进行迭代的原因)

let arrayImages = [];

if (req.files) {                                                      
  Array(req.files).forEach(image => {
    arrayImages.push(image[0].filename);
  })
}

【问题讨论】:

  • 根据How To Ask 指南,鼓励您在使用该网站之前阅读该指南,请不要发布您的代码(或数据)的图像。代码是文本。将其粘贴为图形是非常不切实际的,因为它不能被复制、搜索、在答案中重复使用等。这让那些可能想要帮助你的人变得困难。请编辑您的问题以将代码包含为文本并使用formatting tools 很好地呈现它,以便那些想要帮助您的人可以使用它。谢谢
  • 无论如何,目前还不清楚到底是什么问题……你说你“遇到了麻烦”,但没有具体解释问题所在。您向我们展示了一些代码,它只是将文件列表推送到数组中。你被困在哪里了?您是否尝试过读取文件名属性?在您的循环中,看起来 image[0].filename 应该包含它。
  • 很抱歉,我遇到的问题是我无法获取文件名。我已经尝试过使用 image[0].filename 和其他变体,但无论哪种方式我似乎都无法理解。当我在我应该将req.files的元素推入其中之后console.log数组'arrayImages'时,就像我再次获得整个req.files一样。我是编程新手,所以如果这个问题听起来很傻,或者我似乎没有考虑太多,我很抱歉。从昨天开始就遇到同样的问题
  • it's like if i get the whole req.files again 是的,因为您基本上只是逐项复制它
  • can't seem to get it. ...那么当您使用image[0].filename 时会发生什么确切?一个错误?其他意想不到的结果?请清楚具体地说明问题。

标签: javascript arrays object foreach multer


【解决方案1】:

大家好,谢谢大家的帮助,我终于弄明白了!

let arrayImages = [];
for (const clave in req.files) {
    array = req.files[clave]
    arrayImages.push(`${array[0].filename}`);
}

这样我就得到了每个元素的字段名

【讨论】:

    【解决方案2】:

    屏幕数据的根是一个对象。

    所以尝试这样编码:

    let arrayImages = [];
    
    if (req.files) {                                                      
      Object.values(req.files).forEach(arr => {
        arrayImages.push(arr[0].filename);
      })
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2018-11-29
      • 2022-08-14
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2021-07-27
      • 2018-09-19
      • 2013-06-05
      相关资源
      最近更新 更多