Expressjs отклоняет почтовый запрос (400 неверный запрос), когда заголовки типа контента и кодирования контента отправляются вместе

app.use( 
    express.text({type: 'text/xml'}), 
    express.json({type: 'application/json'}),
    other middlewares...) ```

Заголовки методов публикации: {connection: 'keep-alive', 'content-length': '1082', 'content-encoding': 'gzip', 'content-type': 'text/xml', accept: '/', 'accept-encoding': 'gzip', origin: 'chrome-extension://sxwwwwagimdiliamlcqswqsw', 'accept-language': 'fr-FR,fr;q=0.9,en-US ;q=0,8,en;q=0,7' }


Also I have tried express.raw with a wildcard for the type, but the response 
is always 400.

```express.raw({type:'*/*', inflate:true}), (req, res, next)=>{console.log(req.body); next() },```




person Balha    schedule 28.04.2020    source источник


Ответы (1)


Найдя это руководство по nodejs, я смог это исправить. Ключ в том, чтобы не использовать какой-либо экспресс-парсер, а вместо этого использовать vanilla nodejs.

  app.use( 

        (req, res, next)=>{
            let data = []
            req.on('data', chunk => {
                data.push(chunk)
            })
            req.on('end', () => {
                req.body = data.toString()
            });
            next()
        }
    )
person Balha    schedule 28.04.2020