javascript - 如何从 AWS lambda 上的 API 获取正确的响应

标签 javascript node.js api aws-lambda aws-serverless

这是我第一次向 Stack-Overflow 社区征求意见。 这几天我一直在学习使用与GETEWAY连接的AWS lambda服务。 我需要在 API 上执行 GET,但问题是我不断收到空响应。

以下是我的带有免费访问 API 的代码示例:


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

非常感谢您的帮助,

最佳答案

这是因为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))
}

关于javascript - 如何从 AWS lambda 上的 API 获取正确的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58648815/

相关文章:

C# 包命名空间

c++ - boost Asio : broken pipe when trying to call a write function "externaly"

rest - Insomnia REST Client - 为 multipart/form-data 设置 "Content-Type"

javascript - 带 ui-router 的 Angular Material 中每个选项卡都有单独的 Controller

javascript - 虽然我改变了标签的文本它仍然返回初始值,我该如何解决?

javascript - 使用 jquery 更新特定类 div 中的文本

node.js - 如何禁用 TypeScript Object.defineProperty(exports, "__esModule", { value : true })?

javascript - 如何调试从 CoffeeScript 生成的 Node.js/JavaScript 代码?

node.js - 无服务器框架无法识别 tsconfig 的路径

javascript - Chart js 在鼠标悬停时显示旧数据