首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理节点/快递中的nginx错误

问处理节点/快递中的nginx错误
EN

Stack Overflow用户
提问于 2014-04-08 20:05:28
回答 1查看 423关注 0票数 0

我将nginx设置为将文件上传大小限制为2MB,并设置了允许相同大小的快捷设置:

nginx:

代码语言:javascript
复制
server {
    client_max_body_size 2M;
}

特快:

代码语言:javascript
复制
app.use(express.limit('2mb'));

在我的文件上传处理程序中,我记录了我所得到的错误,我曾经得到一个对象,它给了我状态代码和更多有用的信息。在重新启动服务器之后,我突然停止了获取错误对象,现在得到了一个HTML字符串。

HTML是您希望看到的nginx屏幕上的输出:

代码语言:javascript
复制
<html>
<head><title>413 Request Entity Too Large</title></head>
<body bgcolor="white">
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx/1.4.4</center>
</body>
</html>

为什么会这样呢?如何确保我只返回一个错误对象,而不是这个不太有用的字符串?

发送响应的回调是:

代码语言:javascript
复制
callbacks.uploadFailure = function(err){
    res.send(413, err);
};

我还试着把json送回去:

代码语言:javascript
复制
callbacks.uploadFailure = function(err){
    res.json(413, err);
};

在我做这样的事之前:

代码语言:javascript
复制
if(err.error.status === 413) {$scope.errmsg = 'File upload too large.'}

但是现在我不能这样做,因为err仅由上面列出的html字符串组成,我需要解析这个字符串来确定错误是什么。显然我不想那样做。

对于为什么不使用错误对象,有什么建议或解释吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 01:00:55

我怀疑问题在于Nginx在您的Express代码之前发现了错误,这就是为什么您看到的是Nginx错误页面而不是Express响应。

尝试使nginx中的值稍微高一点(比如3M),然后再次重新启动服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22947084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档