Ошибка «Сайт не может быть достигнут» для Nodejs Lambda Microservice Server Server Express.js со сжатием - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь понять, как работает библиотека сжатия 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. Однако, когда я пытаюсь выполнить запрос, который дает большой ответ, он выдает ошибку «Сайт не может быть достигнут».

enter image description here

Когда я комментирую строку 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
      }
    }
  ]
}

Есть ли какая-то причина, по которой это не должно работать со сжатием? спасибо!

1 Ответ

0 голосов
/ 26 апреля 2019

Когда вы включаете gzip, тип mime должен быть явно указан в awsServerLess Proxy.

const binaryMimeTypes = 'application/json';
const server = awsServerlessExpress.createServer(app, null, binaryMimeTypes);

Это должно исправить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...