Node.js 为什么上传到Lambda时这些字符串不相等?
我正在将字符串“references”添加到Lambda函数中。但是,出于某种原因,当我尝试查看变量是否匹配==“references”时,它返回的值为false。我已经记录了不同的值,以确保它不会被操纵。您可以看到cloud watch日志的样子:Node.js 为什么上传到Lambda时这些字符串不相等?,node.js,lambda,Node.js,Lambda,我正在将字符串“references”添加到Lambda函数中。但是,出于某种原因,当我尝试查看变量是否匹配==“references”时,它返回的值为false。我已经记录了不同的值,以确保它不会被操纵。您可以看到cloud watch日志的样子: /*/Update an existing permissions request/*/ import handler from "./libs/handler-lib"; import dynamoDb from "
/*/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 };
});
检查
数据的类型(它可能不是字符串),以及它的长度(可能有空白字符?)谢谢@CertainPerformance耶类型是字符串(我选中了),我使用了修剪方法来确保没有空白。仍然不平等。我会继续检查长度,以防万一。奇怪,也许其中一个字符是不同的[…data].forEach((char,i)=>{if(char.charCodeAt()!==eventData.charCodeAt(i)){/*log char codes and debug
我刚刚检查了长度,数据和事件数据是12的字符串长度,而“references”是10。几乎就像是在计算引号一样。