Я пытаюсь понять, как работает библиотека сжатия nodejs и почему она вызывает у меня проблемы в этой ситуации.
Мой код предназначен для запуска на AWS Lambda с запущенным nodejs 6.10. Вот мой index.js, который в основном просто устанавливает «awsServerlessExpress».
'use strict';
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context);
Тогда мой app.js выглядит так:
const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware')
const compression = require('compression')
const bodyParser = require('body-parser')
const express = require('express');
const app = express();
app.use(compression())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(awsServerlessExpressMiddleware.eventContext())
const emptyRouteHandler = require('./src/routes/empty-route');
app.get('/', emptyRouteHandler);
app.post('/', function (req, res) {
res.send({
"Output": "Hello World!"
});
});
module.exports = app;
Мое приложение затем отображается как конечная точка GET rest. Однако, когда я пытаюсь выполнить запрос, который дает большой ответ, он выдает ошибку «Сайт не может быть достигнут».
Когда я комментирую строку app.use(compression())
и выполняю точно такой же запрос, все работает, и я получаю ожидаемый ответ:
{
"data": [
{
"ticker": "BNBBTC",
"volume": {
"volumePastOneMinute": 3342.97,
"volumePastFiveMinute": 12833.57,
"volumePastOneday": 2631570.63,
"normalizedVolumePastOneMinute": 3342.97,
"normalizedVolumePastFiveMinute": 2566.714,
"normalizedVolumePastOneday": 1827.4796041666666
},
"price": {
"priceChangePast1min": -9.000000000000761e-7,
"priceChangePast5min": -0.000006000000000000146,
"normalizedPriceChange1min": -9.000000000000761e-7,
"normalizedPriceChange5min": -0.0000012000000000000292,
"priceChange24hr": 0.0000459,
"highLowDiff24hr": 0.00006839999999999993,
"weightedAvgPrice24hr": 0.00162003
},
"recommendation": {
"toBuyOrNotToBuy": "Don't Buy",
"volumeHeatRating": "Hot",
"volumeRatio1minTo1day": null,
"volumeRatio5minTo1day": null,
"volumeRatio1minTo5min": 1.302431825283222
}
},
{
"ticker": "BNBUSDT",
"volume": {
"volumePastOneMinute": 12528.64,
"volumePastFiveMinute": 33792.58,
"volumePastOneday": 3743812.16,
"normalizedVolumePastOneMinute": 12528.64,
"normalizedVolumePastFiveMinute": 6758.5160000000005,
"normalizedVolumePastOneday": 2599.8695555555555
},
"price": {
"priceChangePast1min": -0.035199999999999676,
"priceChangePast5min": -0.04209999999999958,
"normalizedPriceChange1min": -0.035199999999999676,
"normalizedPriceChange5min": -0.008419999999999917,
"priceChange24hr": 0.9262,
"highLowDiff24hr": 1.2371999999999996,
"weightedAvgPrice24hr": 15.00409339
},
"recommendation": {
"toBuyOrNotToBuy": "Don't Buy",
"volumeHeatRating": "Hot",
"volumeRatio1minTo1day": null,
"volumeRatio5minTo1day": null,
"volumeRatio1minTo5min": 1.8537560612418464
}
}
]
}
Есть ли какая-то причина, по которой это не должно работать со сжатием? спасибо!