Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在我的Node express应用程序中使用multer始终未定义req.file_Node.js_Express_Amazon S3 - Fatal编程技术网

Node.js 在我的Node express应用程序中使用multer始终未定义req.file

Node.js 在我的Node express应用程序中使用multer始终未定义req.file,node.js,express,amazon-s3,Node.js,Express,Amazon S3,我试图在multer-S3的支持下,使用multer将图像文件从客户端上传到AWS S3存储服务器。但是,我不断得到req.file调用的未定义结果。我一直在谷歌上搜索并检查我的问题的所有可能的原因,到目前为止没有运气。希望有人能帮我。提前谢谢 客户端HTML代码: <form method="post" enctype="multipart/form-data" action="/create"> <input type="text" name="name" />

我试图在multer-S3的支持下,使用multer将图像文件从客户端上传到AWS S3存储服务器。但是,我不断得到req.file调用的未定义结果。我一直在谷歌上搜索并检查我的问题的所有可能的原因,到目前为止没有运气。希望有人能帮我。提前谢谢

客户端HTML代码:

<form method="post" enctype="multipart/form-data" action="/create">
    <input type="text" name="name" />
    <input type="text" name="topic" />
    <input type="file" name="image" />
    <input type="submit" value="Upload" />
</form>
我尝试了以下方法:

  • 删除了“body parser”并仅使用“multer”,结果更糟(req.body和req.file都未定义)。使用body解析器,至少我可以保证req.body可以正常工作
  • 为了简化原因,我从客户端删除了所有文本字段输入,只保留文件上载选项,以确保我只传输文件数据,但仍返回未定义的req.file(multer根本不工作)
  • 我还了解到“请注意,req.body可能尚未完全填充。这取决于客户端向服务器传输字段和文件的顺序。”在我的情况下,我没有获得文件,因此现在对我来说无关紧要
  • 仅在不使用multer-s3的情况下使用multer,并尝试使用upload.array而不是upload.single,但仍然没有成功(multer-s3构建在multer之上,因此我认为这与我当前的问题无关,只是尝试一下)
  • 跳过AWS S3并将其存储在本地路径中,结果仍然未定义

  • 经过长时间的斗争,在Mutter和busboy之间切换,什么都不起作用。突然,我注意到我的表单实际上使用了一个聚合元素“is=”iron form“,我的错误并没有在我原来的帖子中键入它,如下所示。删除它后,我的文件上传在multer上工作——我相信它也会在busboy上工作

    <form is="iron-form" method="post" enctype="multipart/form-data" action="/create"> 
    
    
    

    聚合物元素在过去总是给我带来麻烦。但别误会,这是一个伟大的项目,有很多伟大的东西可以用来设计你的页面。但是您需要真正了解如何使用这些元素来利用它们。就我而言,我从中学到了教训,希望与大家分享。

    这里似乎没有任何建议。我想我需要把我的代码换成“勤杂工”,并希望它能正常工作。我唯一担心的是,考虑到“multer”是建立在“busboy”之上的,同样的问题也会发生。我可以看到很多人遇到了这个问题,我仔细检查了每个解决方案,以确保我做得正确。但我想没有人遇到过我的处境。
    <form is="iron-form" method="post" enctype="multipart/form-data" action="/create">