gpt4 book ai didi

node.js - 明确限制请求大小

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:26 24 4
gpt4 key购买 nike

我想限制以下情况下的上传请求大小(简化):

app = Express();
router = Express.Router();
router.use('/upload', (req, res, next) => {
const writeStream = fs.createWriteStream('filename');
req.pipe(writeStream);
});
app.use(router);

如您所见,没有使用任何形式或类似形式(无法更改此设置)。因此,数据作为原始数据流提供。

由于我找不到适合这种情况的任何现有模块(body-parser 不适用于这种情况,raw-body 也不能使用,因为流应该保持不变),我当前的方法是使用以下代码作为express的中间件:

function(req, res, next) {
if (req.headers['content-length'] > limit) {
res.set("Connection", "close");
res.status(413).end();
return;
}
let received = 0;
req.on('data', (chunk) => {
received += chunk.length;
if (received > limit) {
res.set("Connection", "close");
res.status(413).end();
}
})
next();
})

有没有更好的方法来做到这一点?是否有现有的 npm 包可以完成这项工作?

最佳答案

最后我通过使用@ambianBeing提供的答案解决了这个问题,并重写了随后处理缓冲区而不是流的函数。

关于node.js - 明确限制请求大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com