在lambda函数中发送JSON响应时出现无服务器脱机响应问题

时间:2018-09-19 12:48:05

标签: node.js aws-lambda aws-api-gateway serverless-framework serverless-framework-offline

var result = [{
                count : 10,
                data : [{"id":11,"id":22}]
               }];
var response = {
                statusCode: 200,
                count: result.length,
                body: result
            };
            callback(null, response);

控制台错误

  

根据API网关规范,正文内容必须为   串起来。检查您的Lambda响应并确保您正在调用   身体对象上的JSON.stringify(YOUR_CONTENT)

1 个答案:

答案 0 :(得分:3)

这里的错误为您提供了解决方案。
API Gateway的回调需要一个字符串,而不是javascript对象。您必须先对其进行字符串化处理,然后再将其传递给回调:

var result = [{
                count : 10,
                data : [{"id":11,"id":22}]
               }];
var response = {
                statusCode: 200,
                count: result.length,
                body: result
            };
            callback(null, JSON.stringify(response));

编辑:
然后在客户端解析JSON字符串以将其返回给对象(此示例假设您的客户端也是Javascript):

var myObject = JSON.parse(responseBody);