middleware для проверки размера POST body, если он больше какого-то значения, вернуть ошибку, в другом случае пойти дальше.
Я написал вот такую функцию:
const express = require('express');
const app = express()
function middleware(len = 10) {
return (req, res, next) => {
req.len = 0;
req.on('data', function(chunk) {
req.len += chunk.length;
if (req.len > len) {
res.write('Error');
req.end();
}
});
req.on('end', function() {
if (req.len <= len) {
next();
}
});
};
}
app.use(middleware(10))
app.post('/',(req,res)=>{res.end('It works'))
app.listen(8888)
Теперь если запустить
curl http://host -d var=foo
То он отобжражает It works, а если запустить
curl http://host -d var=SomeBigVar00000000000000000
то отображает ошибку. Вроде все нормально, но если между первым app.use и app.post добавить app.use(bodyParser.urlencoded()); для парсинга body, то этот middleware не работает.
Как сделать так чтобы он заработал?
https://t.me/nodejs_ru
Обсуждают сегодня