Javascript 当我删除错误变量时,上载停止工作
在AmazonS3上上传照片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
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框架的文档,查看它是否包含在上传过程中不需要错误处理的方法重载。