Javascript 如何从AWS lambda上的API获得正确响应
这是我第一次邀请Stack Overflow社区。 几天以来,我一直在学习使用与Getway连接的AWS lambda服务。 我需要在API上做一个GET,但问题是我经常收到一个空的响应 下面是我使用免费访问API的代码示例:Javascript 如何从AWS lambda上的API获得正确响应,javascript,node.js,api,aws-lambda,aws-serverless,Javascript,Node.js,Api,Aws Lambda,Aws Serverless,这是我第一次邀请Stack Overflow社区。 几天以来,我一直在学习使用与Getway连接的AWS lambda服务。 我需要在API上做一个GET,但问题是我经常收到一个空的响应 下面是我使用免费访问API的代码示例: var getApi= async function(event) { var x = await axios.get(url) } var getResponse = async function(){ var data= aw
var getApi= async function(event) {
var x = await axios.get(url)
}
var getResponse = async function(){
var data= await getApi()
if (data.status ==200){
return data
}
}
exports.handler = async function() {
return getResponse().then(res => {
const response = {
statusCode: 200,
body: JSON.stringify(res),
};
return response
}).catch(error => { return error})
};
非常感谢您的帮助,我建议在整个文件中使用
console.log()
进行调试。默认情况下,您应该能够在Cloudwatch中看到对这些控制台日志的响应:)
请在此处阅读更多信息:
我建议在整个文件中使用
console.log()
进行调试。默认情况下,您应该能够在Cloudwatch中看到对这些控制台日志的响应:)
请在此处阅读更多信息:
我自己最近也遇到了这个问题。解决办法是:
我还有一篇非常详细的Stackoverflow文章,介绍了如何通过Cloudformation YAML文件配置网关:我自己最近也遇到了这个问题。解决办法是:
我也有一篇非常详细的Stackoverflow文章,介绍了如何通过Cloudformation YAML文件配置网关:这是因为node.js异步调用。 函数在异步调用返回之前完成运行。 我修正了一些代码行。我希望这对你有帮助
const getApi= async function() {
return await axios.get(url)
}
const getResponse = async function(){
const data= await getApi()
if (data.status ==200){
return data
}
}
exports.handler = async function() {
return await getResponse().then(res => {
const response = {
statusCode: 200,
body: JSON.stringify(res),
}
return response
}).catch(error => console.error(error))
}
这是因为node.js异步调用。 函数在异步调用返回之前完成运行。 我修正了一些代码行。我希望这对你有帮助
const getApi= async function() {
return await axios.get(url)
}
const getResponse = async function(){
const data= await getApi()
if (data.status ==200){
return data
}
}
exports.handler = async function() {
return await getResponse().then(res => {
const response = {
statusCode: 200,
body: JSON.stringify(res),
}
return response
}).catch(error => console.error(error))
}
下面是调用axios.get(url)的getApi中的免费api var url=''。url在哪里声明?它不是作为参数传递给getApi。Hi@adamtropp,url是在
var getApi
之前声明的变量。下面是在getApi中调用axios.get(url)的免费api var url=''。url在哪里声明?它不是作为参数传递给getApi。Hi@adamtropp,url是在var getApi
之前声明的变量。Hi!谢谢你的建议!我会安排的。:)你好谢谢你的建议!我会安排的。:)你好,谢谢你的回答。我没有在我的Gateway上配置授权程序,因为我想让它保持打开状态。我只希望我的lambda从第三方API发出请求,并将结果发送给Gateway上的每个GET。:)你好,谢谢你的回答。我没有在我的Gateway上配置授权程序,因为我想让它保持打开状态。我只希望我的lambda从第三方API发出请求,并将结果发送给Gateway上的每个GET。:)你好谢谢你的帮助!这是正确的答案。嗨!谢谢你的帮助!这是正确的答案。