node.js - 为什么这些字符串在 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 };
});
解决方案
推荐阅读
- python - 如何防止将字符串分解为字符列表?
- excel - VBA 擅长。与 Internet Explorer 网页的源交互
- c# - 如何在不使用 asp:BoundFields 的情况下选择网格视图中的行
- amazon-s3 - AWS Glue - 如何配置 Crawler 以创建包含 S3 文件名的表
- javascript - ReactJS:更改组件属性后重新渲染不起作用
- c# - 删除/替换流阅读器字符串中的多个单词
- sql-server - 如何使用 CTE 进行插入
- python - 如何在 QGraphicsView 中自动正确设置 rect?
- javascript - 防止 JavaScript 在每个页面上运行的正确方法(或也尝试)
- node.js - Express 路由器在添加参数时使用不同的路由