Javascript 在生产中将标题发送到客户端后,无法设置标题

Javascript 在生产中将标题发送到客户端后,无法设置标题,javascript,amazon-web-services,amazon-ec2,production,Javascript,Amazon Web Services,Amazon Ec2,Production,我不知道该怎么解决这个问题 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 当我在ec2实例(生产环境)中运行我的节点js代码,但在本地主机中运行得非常好时 Im实际做的是使用NodeJSAPI将img上传到s3 bucket 这是我在控制器中的代码,这里您得到了一个错误:您提供的AWS访问密钥Id在我们的记录中不存在,在您设置的err块中,res.status,因此首先执行

我不知道该怎么解决这个问题

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
当我在ec2实例(生产环境)中运行我的节点js代码,但在本地主机中运行得非常好时

Im实际做的是使用NodeJSAPI将img上传到s3 bucket


这是我在控制器中的代码,这里您得到了一个错误:您提供的AWS访问密钥Id在我们的记录中不存在,在您设置的err块中,
res.status
,因此首先执行此块并向客户端发送响应,之后当客户端尝试执行'res.json'时,会发生此错误,您所需要的只是对数据使用另一个条件

s3Client.upload(params, (err, data) => {
    if (err) {
        res.status(500).json({error:"Error -> " + err});
    } else if(data){
        res.json({message: 'File uploaded successfully! -> keyname = ' + params.Key,file_name: params.Key});
    }
});

使用此代码,您可以处理错误,而不会收到任何发送的
ERR\u HTTP\u HEADERS\u
错误。

您可以上传您的代码吗?编辑完我的评论后,我将代码包含在我的控制器中,它执行
res.status(500).json({error:“error nonoy-->”+ERR})日志?{“错误”:“错误->无效访问密钥Id:您提供的AWS访问密钥Id在我们的记录中不存在。”}
s3Client.upload(params, (err, data) => {
    if (err) {
        res.status(500).json({error:"Error -> " + err});
    } else if(data){
        res.json({message: 'File uploaded successfully! -> keyname = ' + params.Key,file_name: params.Key});
    }
});