- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我收到以下 express 错误:
Error: request entity too large
at module.exports (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/node_modules/raw-body/index.js:16:15)
at json (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/json.js:60:5)
at Object.bodyParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5)
at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.cookieParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)
at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.logger (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/logger.js:158:5)
at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.staticMiddleware [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/static.js:55:61)
at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
TypeError: /Users/michaeljames/Documents/Projects/Proj/mean/app/views/includes/foot.jade:31
29| script(type="text/javascript", src="/js/socketio/connect.js")
30|
> 31| if (req.host='localhost')
32| //Livereload script rendered
33| script(type='text/javascript', src='http://localhost:35729/livereload.js')
34|
Cannot set property 'host' of undefined
at eval (eval at <anonymous> (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:152:8), <anonymous>:273:15)
at /Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:153:35
at Object.exports.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:197:10)
at Object.exports.renderFile (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:233:18)
at View.exports.renderFile [as engine] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:218:21)
at View.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/view.js:76:8)
at Function.app.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/application.js:504:10)
at ServerResponse.res.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/response.js:801:7)
at Object.handle (/Users/michaeljames/Documents/Projects/Proj/mean/config/express.js:82:29)
at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:188:17)
POST /api/0.1/people 500 618ms
我正在使用 meanstack。我的 express.js 中有以下使用语句
//Set Request Size Limit
app.use(express.limit(100000000));
在 fiddler 中,我可以看到内容长度 header ,其值为:1078702
我相信这是八位字节,这是 1.0787 兆字节。
我不知道为什么 express 不允许我发布我之前在另一个没有使用平均堆栈项目结构的 express 项目中发布的 json 数组。
最佳答案
我最近遇到了同样的错误,我找到的所有解决方案都不起作用。
经过一番挖掘,我发现设置 app.use(express.bodyParser({limit: '50mb'}));
确实设置了正确的限制。
添加 console.log('Limit file size: '+limit);
时在 node_modules/express/node_modules/connect/lib/middleware/json.js:46
并重新启动 Node ,我在控制台中得到这个输出:
Limit file size: 1048576
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Limit file size: 52428800
Express server listening on port 3002
我们首先可以看到,在加载 connect
时模块,限制设置为 1mb(1048576 字节)。然后当我设置限制时,console.log
再次调用,这次限制为 52428800 (50mb)。但是,我仍然得到 413 Request entity too large
.
然后我添加了 console.log('Limit file size: '+limit);
在 node_modules/express/node_modules/connect/node_modules/raw-body/index.js:10
并在使用大请求调用路由时在控制台中看到另一行(在错误输出之前):
Limit file size: 1048576
这意味着不知何故,某处,connect
重置限制参数并忽略我们指定的内容。我尝试指定 bodyParser
单独路由定义中的参数,但也没有运气。
虽然我没有找到任何适当的方法来永久设置它,但您可以直接在模块中“patch”它。如果您使用的是 Express 3.4.4,请将其添加到 node_modules/express/node_modules/connect/lib/middleware/json.js
的第 46 行:
limit = 52428800; // for 50mb, this corresponds to the size in bytes
如果您运行的 Express 版本不同,行号可能会有所不同。请注意,这是不好的做法,如果您更新模块,它将被覆盖。
所以这个临时解决方案目前有效,但一旦找到解决方案(或修复模块,以防是模块问题),您应该相应地更新您的代码。
我打开了an issue on their GitHub关于这个问题。
[编辑 - 找到解决方案]
经过一番研究和测试,我发现在调试的时候,我添加了app.use(express.bodyParser({limit: '50mb'}));
, 但之后 app.use(express.json());
. Express 然后会将全局限制设置为 1mb,因为他在运行脚本时遇到的第一个解析器是 express.json()
。 .搬家bodyParser
上面它成功了。
也就是说,bodyParser()
方法将在 Connect 3.0 中被弃用,不应使用。相反,您应该明确声明您的解析器,如下所示:
app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
如果您需要分段(用于文件上传),请参阅 this post .
[第二次编辑]
请注意,在 Express 4 中,而不是 express.json()
和 express.urlencoded()
,您必须要求 body-parser模块并使用它的json()
和 urlencoded()
方法,像这样:
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
如果 extended
选项未明确定义 bodyParser.urlencoded()
,它会抛出一个警告( body-parser deprecated undefined extended: provide extended option
)。这是因为在下一版本中将需要此选项,并且将不再成为 optional 。欲了解更多信息,请访问 extended
选项,可以引用readme的 body-parser
.
[第三次编辑]
似乎在 Express v4.16.0 之后,我们可以回到最初的做法(感谢@GBMan 的提示):
app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
关于javascript - 错误 : request entity too large,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917401/
这两个句子有什么区别: res = requests.request('POST', url) 和 res = requests.request.post(url) 最佳答案 它们几乎是一样的:htt
我正在使用“请求对话框”来创建 Facebook 请求。为了让用户收到请求,我需要使用图形 API 访问 Request 对象。我已经尝试了大多数看起来合适的权限设置(read_requests 和
urllib.request和http.client都是python标准库。前者相关方法的文档是 here后者,here (我使用的是3.5) 有谁知道为什么标准库中有两种方法看起来做同样的事情,或者
我是 Twisted 的新手,我不明白为什么在运行我的脚本时会出现此错误。\ 基本上,该脚本由 2 个页面组成,第一个页面是一个 HTML 表单,它调用自身执行一个阻塞方法并显示结果。当请求同时发送到
我有一个客户端 JS 文件,其中包含: agent = require('superagent'); request = agent.get(url); 然后我有类似的东西 request.get(u
提前输入功能可以正常工作。但问题是,提前输入功能会在每个数据请求上发出 JSON 请求,而实际上只应针对一个特定请求发生。 我有以下 Controller : #controllers/agencie
我正在使用 Rust 开发一个小型 API,我不确定如何在两个地方访问来自 Iron 的 Request。 Authentication 中间件为 token 读取一次Request,如果路径被允许(
问题起因 今天一位网友向我们反馈,用Chrome打开某些博客文章时,会出现"Bad Request - Request Too Long. HTTP Error 400. The siz
当我从 LinkedIn 向 https://api.linkedin.com/uas/oauth/requestToken 请求请求 token 时,出现以下错误: oauth_problem=si
我只是想使用 okhttp 下载一些字节数据,但在我完成代码之前,我遇到了一个问题,android studio 报告了一个错误,说“Request(okhttp3.Request.Builder)
我正在使用 Windows 10。我想在我的系统上使用 Angular 4。当我运行 node -v 和 npm -v 时,它会显示版本。但是当我执行语句 npm install -g @angula
我正在尝试让一个简单的 Iron 示例起作用: extern crate iron; extern crate router; use iron::prelude::*; use iron::stat
我正在尝试使用嵌套字典“动态”创建一个数据输入表单(目前,我使用具有 3 个值的数组,但将来数组中的元素数量可能会有所不同)。这似乎工作正常,并且表单“正确”渲染了 html 模板(正确 = 我看到了
从 ASP.NET 中的代码隐藏访问表单或查询字符串值时,使用的优缺点是什么,例如: // short way string p = Request["param"]; 代替: // long way
我遇到了一个问题,我想知道更好的解决方法。 有五个 api 请求并行运行,第二个请求依赖于第四个请求的响应,但所有 5 个请求都已在运行。什么是更好的方法? 需要建议。提前致谢。 最佳答案 调度地面工
我收到以下错误:TypeError:序列项 0:预期字节、字节数组或具有缓冲区接口(interface)的对象、找到元组 我检查了Python文档,urllib.request.Request的参数似
当我向函数添加超时参数时,我的代码总是进入异常并打印出“我失败了”。当我删除超时参数时,代码会正常工作,并进入 try 子句。关于超时参数如何在 urllib.request 函数中工作的任何信息?
我使用 cURL 向服务器发送请求这是链接:Server Side script for cURL request我用 file_get_contents('php://input'); 读取发送的数
请大家帮帮我我正在尝试使用 NUTCH 抓取网站,但它给我错误“java.io.IOException: Job failed!” 我正在运行此命令“bin/nutch solrindex http:
在我的 AngularJS 应用程序中,我无法弄清楚如何对 then promise 的执行更改 location.url 进行单元测试。我有一个函数,登录 ,调用服务,身份验证服务 .它返回 pro
我是一名优秀的程序员,十分优秀!