即使 Expressjs 中存在错误处理程序,AWS 也会显示它自己的错误屏幕

Posted

技术标签:

【中文标题】即使 Expressjs 中存在错误处理程序,AWS 也会显示它自己的错误屏幕【英文标题】:AWS showing it's own error screen even when the error handler exists in Expressjs 【发布时间】:2021-10-05 19:23:41 【问题描述】:
app.use((err, req, res, next) => 
    if (err.type === 'entity.too.large')
        res.send(
            '<p align="center">Please upload an image below the defined limit of 5 MB. <br> Click <a href="/create">here</a> to visit the upload page again.</p>'
        )
    else res.redirect('/')
)

我有这段代码来捕捉错误。但是 AWS 仍然显示这个而不是预期的文本。

应用托管在 Elastic Beanstalk 的 EC2 实例中。

【问题讨论】:

【参考方案1】:

使用以下文件夹结构创建proxy.conf 文件。 根目录应该有 .platform 文件夹。

.platform\nginx\conf.d\proxy.conf

并在根文件夹中粘贴此代码。

client_max_body_size 50M;
large_client_header_buffers 4 32k;
fastcgi_buffers 16 32k;
fastcgi_buffer_size 32k;
proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;

【讨论】:

您的意思是将代码粘贴到proxy.config文件中吗? @AnshAgarwal 是的。

以上是关于即使 Expressjs 中存在错误处理程序,AWS 也会显示它自己的错误屏幕的主要内容,如果未能解决你的问题,请参考以下文章

在 ExpressJS 响应中返回异步等待 try/catch 抛出错误 [重复]

expressjs 承诺和 sunc 错误处理

ExpressJS:承诺和错误处理中间件

请求的资源上不存在“Access-Control-Allow-Origin”标头。 ExpressJs

使用带有 expressjs 的 multer 上传文件时的错误处理

Expressjs:DB操作处理错误(下一步未定义)