DynamoDB Datamapper генерирует ошибку, элемент не соответствует протоколу DynamoDBTable - PullRequest
0 голосов
/ 20 мая 2019

Не совсем уверен, где моя ошибка, я использую функцию сопоставления AWS DynamoDb в node.js, но получаю эту ошибку:

Предоставленный элемент не соответствует протоколу DynamoDbTable. нет Свойство string было найдено в символе DynamoDbTable Я следовал учебному пособию, которое они предоставляют, я внес некоторые изменения, чтобы я мог использовать cjs, но, похоже, не смог найти проблему.

const {
  DynamoDBSchema,
  DynamoDBTable,
  embed
} = require("@aws/dynamodb-data-mapper");
const v4 = require("uuid/v4");
class Invoice {}

Object.defineProperties(Invoice.prototype, {
  DynamoDBTable: {
    value: 'invoices'
  },
  [DynamoDBSchema]: {
    value: {
      id: {
        type: "String",
        keyType: "HASH",
        defaultProvier: v4
      },

      invoiceId: {type:'String'},
      firstname:{type:'String'},
      lastname:{type:'String'},
      email:{type:'String'},
      items:{type:'List',memberType:{type:'Map'}},
      tax:{type:'String'},
      total:{type:'String'},
      paymentStatus:{type:'String'},
      paymentType:{type:'String'},
      paymentInfo:{type:'List',memberType:{type:'Map'}}

    }
    
  }
});
   module.exports = Invoice;

const AWS = require("aws-sdk");
const {DataMapper} = require('@aws/dynamodb-data-mapper');
const Invoice= require('../models/invoices.model');

const ddb = new AWS.DynamoDB({
  region: "us-east-1",
  endpoint: "http://localhost:1948"
});
const ddbDoc = new AWS.DynamoDB.DocumentClient({
  region: "us-east-1",
  endpoint: "http://localhost:1948"
})

const mapper = new DataMapper({
  client: new AWS.DynamoDB({region: "us-east-1",
  endpoint: "http://localhost:1948"})
})

let data = new Invoice();


//mapper.put({data}).then(console.log).catch(console.log)
async function getItems(){
  for await( const foo of mapper.scan(data,{indexName:'Invoiceid-Email'}) ){
    console.log(foo)
  }
}
getItems().then(console.log).catch(console.log);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...