对于以下使用Lambda-Proxy集成并使用URL的lambda函数
/api/random?min=1&max=10
我的代码:
exports.handler = async (event) => {
let min = event.queryStringParameters.min
let max = event.queryStringParameters.max
console.log("min", min)
console.log("max",max)
const response = {
statusCode: 200,
body: JSON.stringify(Math.floor(Math.random()*max)+min),
};
return response;
};
执行失败,出现以下错误:
Response: { "errorType": "TypeError", "errorMessage": "Cannot read property 'min' of undefined", "trace": [ "TypeError: Cannot read property 'min' of undefined", " at Runtime.exports.handler (/var/task/index.js:3:43)", " at Runtime.handleOnce (/var/runtime/Runtime.js:65:25)", " at process._tickCallback (internal/process/next_tick.js:68:7)" ] }
使用JSON.stringify(event)
记录事件将返回正确的参数:
{"min":"1","max":"10"}
答案 0 :(得分:0)
使用JSON记录事件.stringify(event)返回正确的 参数:
{“ min”:“ 1”,“ max”:“ 10”}
您的Lambda事件似乎没有附加queryStringParameters
属性。您需要在事件中添加它或将代码修改为:
let { min, max } = event
答案 1 :(得分:0)
就我而言,这是我稍后在代码中调用的函数中的一个错误(与 queryString 无关), 当我把它放在评论中时,错误消失了!