我有一个 Nodejs 应用程序,我在其中使用 Express 来实现 REST API。
其中一个 API 接受 SQL 查询,在数据库上运行它并返回 JSON 响应。一切都工作正常,直到我使用长 SQL 查询测试 api。
在调试时,我注意到 SQL 查询被自动修剪。
GET URL 中可以传递的参数长度是否有限制?
这就是我的 api 的样子
app.get('/v1/runsql/:query', (req, res) => {
let result = runQuery.executeQuery(req.params.query);
..... execute some more code here
})
最佳答案
Node 不是对 URL 本身进行限制,而是对整个请求 header (包括 URI)进行限制。请求 header + URI 不能超过 80 kb。
此外,公开允许任意 SQL 查询(无论它们是否在 URL 上)的 API 是一个极其糟糕的主意。大多数应用程序花费大量精力试图阻止任意 SQL 查询不应公开的记录、删除表等。故意公开这样的端点感觉就像是在自找麻烦。
关于node.js - GET 的表达参数长度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751383/