当前位置: 首页 > 知识库问答 >
问题:

在Node.js的返回语句中包含标题和数据数组

柏正平
2023-03-14

我有一个lambda函数,可以获取动态数据库表中的所有项目,如下所示。我想知道是否有一种方法可以在返回语句中包含响应标头以及“scanResults”数组。

在我当前的代码中,我可以包含标题或scan结果数组。我尝试了放置两个返回语句,但那是不正确的代码。有没有办法将它们组合起来?提前感谢您的任何帮助。

'use strict';
const AWS = require('aws-sdk');

exports.handler = async (event, context) => {
    const documentClient = new AWS.DynamoDB.DocumentClient();
    let responseBody = '';
    let statusCode = 0;
    let scanResults = [];
    let items;

    const params = {
        TableName: "Products"
    };

    do {
        items = await documentClient.scan(params).promise();
        items.Items.forEach((item) => scanResults.push(item));
        params.ExclusiveStartKey = items.LastEvaluatedKey;

        

    } while(typeof items.LastEvaluatedKey != "undefined");
        responseBody = JSON.stringify(items.Items);
        statusCode = 200;
        //return scanResults;


        const response = {
            statusCode: statusCode,
            headers: {
                "Content-Type": "application/json",
                "access-control-allow-origin": "*"
            },
            body: responseBody
        };
        return response;





};

共有1个答案

谯和煦
2023-03-14

你差不多就在那里,只是缺少一个不正确的ref属性的响应正文:

'use strict';
const AWS = require('aws-sdk');
const documentClient = new AWS.DynamoDB.DocumentClient();

exports.handler = async (event, context) => {
    let responseBody = '';
    let statusCode = 0;
    let scanResults = [];
    let items;

    const params = {
        TableName: "Products"
    };

    do {
      items = await documentClient.scan(params).promise();
      scanResults = [...scanResults, ...items.Items];
      params.ExclusiveStartKey = items.LastEvaluatedKey;
    } while(typeof items.LastEvaluatedKey != "undefined");
    responseBody = JSON.stringify(scanResults);
    statusCode = 200;
    const response = {
        statusCode: statusCode,
        headers: {
            "Content-Type": "application/json",
            "access-control-allow-origin": "*"
        },
        body: responseBody
    };
    return response;
};
 类似资料:
  • 问题内容: 这是问题的简化:我有一个看起来像这样的选择: 并返回的数据快照看起来像这样 我想做的是,如果工作组是内部的,则选择不显示受让人的名称。而是显示工作流。 因此,例如,我想要实现的结果将是这样的: 我希望这是有道理的?基本上是一个条件选择,可以检测某个列是否包含某个值,然后用[whatever]替换另一个列的值。 提前致谢! 编辑我想实现这样的事情: 问题答案: 您没有提到您的DBMS,但

  • 这是一个家庭作业。家庭作业不是递归的,而是树结构的。我几乎完成了作业,但是我的递归方法在树上移动时中断了。树结构由下面的类给出: 我很确定原因是返回值为空;语句与我的for循环相结合。for循环在不包含任何子节点的节点上迭代,结果返回null。这将结束该方法,并将null传递回我的程序,该程序将给我null指针异常。 我无法删除return null语句,否则它将无法编译,即使它将使用for循环1

  • 问题内容: 以下是gcc 4.4.4下的简单代码段错误 将最后一行更改为 工作良好。使用编译时,这两个版本均可使用。我是在简单地调用未定义的行为,还是在标准中进行了某些更改,从而使代码可以在C99下工作?为什么在C89下崩溃? 问题答案: 我相信C89 / C90和C99中的行为均未定义。 是数组类型的表达式,特别是。 C99 6.3.2.1p3说: 除非它是 sizeof 运算符或一元 & 运算

  • 问题内容: 您好,我是python的新手,想知道您是否可以帮我一些忙。我一直在玩这段代码,似乎无法使其正常工作。 现在,isPrime方法的输出如下: 我确定该函数应返回true,然后应打印“是”。我想念什么吗? 问题答案: 您将放弃递归调用的返回值: 您也想传播递归调用的值,包括一条语句: 现在,您的代码将输出:

  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们:

  • 问题内容: 我使用PHP调用Java命令,然后将其结果转发到名为result.txt的文件中。例如,文件包含以下内容:“结果为:5.0”,但函数filesize()返回0,并且当我通过“ ls -l”命令进行检查时,它也为0。因为我决定在文件大小时将结果打印到屏幕上!= 0,因此不打印任何内容。如何获得小数位数?或其他解决方案? 问题答案: 在docs中,当您调用时,PHP会将结果缓存在stat缓