NodeJS - преобразование заголовков событий в нижний регистр для использования с AWS - PullRequest
0 голосов
/ 23 мая 2018

Можно ли каким-то образом преобразовать заголовки событий в нижний регистр?

Я сталкивался с этой веткой , но не могу заставить ее работать правильно ...

index.js

// I have tried 2 different attempts, one is my own and most probably wrong, 
// the other is from the link I posted above.

// My obviously flawed attempt
function makeLower(headers) {
    for(const key in headers) {
      event.headers[key] = key.toLowerCase();
    }
  }

  // console.log('Distribution Audit Create Invoked');

  const headers = makeLower(event.headers);

  // Convert headers to lower case so AWS doesn't kick off
  // Source: https://github.com/serverless/serverless/issues/2765
  // const headers = {};
  // for (const key in event.headers) {
  //   headers[key.toLowerCase()] = event.headers[key];
  // }
  // event.headers = headers;

  console.log('HEADERS: ' + headers['content-type']);

index.test.js (тестирование мне не подходит: - /)

it('should still return 202, with uppercase headers > 
     converting them to lower', done => {

    // Isn't working when sending in CAPS - Does work with non-caps
    event.headers = {'content-type': 'SOME HEADERS'};

    lambda.handler(event, null, (err, request) => {
      should.not.exist(err);
      should.exist(request);
      done();
    });
  })

1 Ответ

0 голосов
/ 23 мая 2018

Разве ваша функция не должна преобразовывать и ключи, и значения в нижний регистр?

function makeLower(headers) {
  let head = {}

  for(const key in headers) {
    if (headers.hasOwnProperty(key)) {
      head[key.toLowerCase()] = headers[key].toLowerCase()
    }
  }

  return head
}

И не использовать исходный объект для хранения значений в нижнем регистре?В противном случае вы получите как строчную, так и исходную версию вашего объекта.

...