Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Javascript 当我删除错误变量时,上载停止工作_Javascript_Node.js_Amazon S3 - Fatal编程技术网

Javascript 当我删除错误变量时,上载停止工作

Javascript 当我删除错误变量时,上载停止工作,javascript,node.js,amazon-s3,Javascript,Node.js,Amazon S3,在AmazonS3上上传照片 s3Client.upload(params); 在这种形式下,一切正常,照片出现在我的篮子里 s3Client.upload(params, (err, data) => { if (err) { res.status(500).json({error:"Error -> " + err}); } }); 但是,一旦我把它带到这个视图中,这些文件就不再发送到AmazonS3 s3Client.upload(param

在AmazonS3上上传照片

s3Client.upload(params);
在这种形式下,一切正常,照片出现在我的篮子里

s3Client.upload(params, (err, data) => {
    if (err) {
        res.status(500).json({error:"Error -> " + err});
    }
});
但是,一旦我把它带到这个视图中,这些文件就不再发送到AmazonS3

s3Client.upload(params);
请帮助我理解为什么会发生这种情况?

我认为“err”变量是其设计的一部分,在处理上传失败时,它会捕获错误。如果您使用的是javascript框架,它有一个文档,您可以在其中看到每个函数的用途、它需要什么参数以及如何构建工作原型。如果省略某些参数与其组件中的方法重载不匹配,则会创建错误

似乎缺少一个关键部分。其他方法也有此注释

如果未提供回调,则必须对返回的请求对象调用
AWS.Request.send()
,以启动请求

此警告也适用于
upload()

所以如果你不打算提供回调,你需要

s3Client.upload(params.send())

也许
s3Client
需要回调。尝试
s3Client.upload(params,()=>{})
@Phil是的,它起作用了。但为什么会这样,请解释一下?为什么我不能这样写
s3Client.upload(params)?查看,似乎只需要
参数
,但这并不能解释为什么它不工作。很奇怪。我怀疑文档是不正确的,像
s3Client.upload(params,()=>{})
这样没有错误的东西可以正常工作。我认为它需要一个函数作为第二个变量。这个函数作为第二个变量是必需的吗?为何如果没有向它传输任何信息,并且它什么也不做,只要它不为空,它就会工作。除非您导致某种错误。我认为框架预计,当您编写上载函数时,您可能会在上载过程中遇到错误,如网络问题、文件损坏或未经授权的访问等。提供错误变量及其错误处理实现是为了满足这些需要。如果您希望在不依赖javascript框架的情况下执行上载,那么您可以使用传统的上载方式,但这将非常繁琐。请参阅js框架的文档,查看它是否包含在上传过程中不需要错误处理的方法重载。