有什么方法可以将event.headers转换为小写?
我遇到this thread,但我无法让它正常工作..
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();
});
})
答案 0 :(得分:1)
你的函数不应该将键和值都转换为小写吗?
function makeLower(headers) {
let head = {}
for(const key in headers) {
if (headers.hasOwnProperty(key)) {
head[key.toLowerCase()] = headers[key].toLowerCase()
}
}
return head
}
并且不使用原始对象来存储小写值?否则,您最终会在对象中使用小写和原始版本。