簡體   English   中英

使用 NodeJs 的 AWS DynamoDB 查詢

[英]AWS DynamoDB Query with NodeJs

我有一個 AWS DynamoDB 表,其中包含電子郵件(分區鍵)和密碼列。 我想運行一個查詢,並結合提供電子郵件和密碼來獲取匹配記錄。
我正在使用 JavaScript(NodeJs) AWS SDK 進行集成。
但是我在執行查詢時面臨一些挑戰,下面是我正在使用的代碼塊 -

var params = {
    TableName : "tblUsers",
    KeyConditionExpression : 'email = :emailValue', 
    FilterExpression : '#password= :passwordValue',
     ExpressionAttributeNames : {
        '#password' : 'password'
    },
    ExpressionAttributeValues : {
        ':emailValue' : email,
        ':passwordValue' : password
    }
};

dynamodb.query(params, function(err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    //console.log("Success", data.Items);
    data.Items.forEach(function(element, index, array) {
      console.log(element);
    });
  }
});

以下是我收到的錯誤 -
 Error MultipleValidationErrors: There were 8 validation errors: * InvalidParameterType: Expected params.ExpressionAttributeValues[':value'] to be a structure * UnexpectedParameter: Unexpected key '0' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '1' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '2' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '3' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '4' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '5' found in params.ExpressionAttributeValues[':value'] * UnexpectedParameter: Unexpected key '6' found in params.ExpressionAttributeValues[':value']

參考文件

試試這樣的:

const AWS = require("aws-sdk");

const documentClient = new AWS.DynamoDB.DocumentClient({ region: "us-west-2" });

const query = async () => {
  const response = await documentClient
    .query({
      TableName: "tblUsers",
      ExpressionAttributeNames: {
        "#password": "password",
        "#email": "email"
      },
      ExpressionAttributeValues: {
        ":emailValue": "email",
        ":passwordValue": "password",
      },
      FilterExpression: "#password = :passwordValue",
      KeyConditionExpression: "#email = :emailValue",
    })
    .promise();

  console.log(`Query response: ${JSON.stringify(response, null, 2)}`);
};

query().catch((error) => console.error(JSON.stringify(error, null, 2)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM