Мне нужно отправить на сервер в node.js сжатие json (gzip).
Какой тип мне нужно отправить, чтобы получить поддержку bodyParser.json({})
и получить автомат c раздувать? а также «какой тип мне нужно поместить в 'Content-Type'
в заголовке?
Я пытался сжать до arrayBuffer и создать из него Uint8Array, но на сервере: req.body пусто.
клиент реагирует. js:
compress(input) {
const stream = new Response(input).body.pipeThrough(
new CompressionStream('gzip')
)
return new Response(stream).arrayBuffer()
}
const fetch = async w => {
const bodyContent = await compress(
JSON.stringify({
name: 'name',
data: 'data'
})
)
var uint8View = new Uint8Array(bodyContent)
return fetch(url, {
headers: {
'Content-Type': 'text/html; charset=UTF-8',
'content-encoding': 'gzip'
},
method: 'POST',
body: uint8View
}).then(res => res.blob())
}
сервер node.js:
app.use(
bodyParser.json({
limit: "5mb"
})
);
app.post("/",(req, res) => {
console.log("req.body", req.body);//{}
});