Javascript NodeJS-将event.headers转换为小写以便与AWS一起使用

Javascript NodeJS-将event.headers转换为小写以便与AWS一起使用,javascript,node.js,amazon-web-services,testing,http-headers,Javascript,Node.js,Amazon Web Services,Testing,Http Headers,是否有任何方法可以将event.headers转换为小写 function makeLower(headers) { let head = {} for(const key in headers) { if (headers.hasOwnProperty(key)) { head[key.toLowerCase()] = headers[key].toLowerCase() } } return head } 我遇到了一些问题,但我无法使它正常工

是否有任何方法可以将event.headers转换为小写

function makeLower(headers) {
  let head = {}

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

  return head
}
我遇到了一些问题,但我无法使它正常工作

index.js

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();
    });
  })

您的函数不应该将键和值都转换为小写吗

function makeLower(headers) {
  let head = {}

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

  return head
}

不使用原始对象来存储小写值?否则,您的对象将同时具有小写和原始版本。

Aha,它可以工作!谢谢你的指导,埃里克。我知道我在什么地方遗漏了什么。这只是AWS带回的钥匙,但我将来仍然可以使用您所说的:-