首页 > 解决方案 > 为什么这些字符串在 Lambda 上上传时不相等?

问题描述

我将字符串“references”添加到我的 Lambda 函数中。但是,由于某种原因,当我尝试查看变量是否匹配 === "references" 时,它返回一个 false 值。我已经记录了各种值,以确保它在此过程中没有被操纵。您可以看到云监视日志的样子:

/*/Update an existing permissions request/*/
import handler from "./libs/handler-lib";
import dynamoDb from "./libs/dynamodb-lib";

export const main = handler(async (event, context) => {
    const data = event.body;
    //Set variables for update request depending on input:
    const setVariables = (eventData) => {
        console.log(`Event data equals data: ${data === eventData}\nEvent data: ${eventData}\nData: ${data}\nData equals "references": ${data === "references"}\nEvent Data equals "references": ${eventData === "references"}`);
        var expression;
        var body;
        var array;
        if (eventData === "references") {
            body = { ":referencesRequested": true };
            expression = "SET referencesRequested = :referencesRequested";
            array = [expression, body];
        } else if (eventData === "repos") {
            body = { ":hiddenreposRequested": true };
            expression = "SET hiddenreposRequested = :hiddenreposRequested";
            array = [expression, body];
        } else {
            body = { ":resumeRequested": true };
            expression = "SET resumeRequested = :resumeRequested";
            array = [expression, body];
        }
        return array;
    };

    const expression = setVariables(data)[0];
    const body = setVariables(data)[1];

    const params = {
        TableName: process.env.tableName,
        Key: {
            userId: event.requestContext.identity.cognitoIdentityId,
            permissionsId: event.pathParameters.id
        },
        UpdateExpression: expression,
        ExpressionAttributeValues: body,
        ReturnValues: "ALL_NEW"
    };

    await dynamoDb.update(params);

    return { status: true };
});

在此处输入图像描述

标签: node.jslambda

解决方案


推荐阅读