#node.js #amazon-dynamodb #aws-sdk
Вопрос:
Я использую Node.js и пакет SDK AWS, чтобы поместить элемент в нашу таблицу DynamoDB. Я получаю ошибку ниже. Однако элемент создается в таблице даже с ошибкой. Ключ раздела — «POST_ID», без ключа сортировки. Для этой таблицы существует несколько индексов.
Unhandled rejection ValidationException: Either the KeyConditions or KeyConditionExpression parameter must be specified in the request.
at Request.extractError (/app/node_modules/aws-sdk/lib/protocol/json.js:52:27)
at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/app/node_modules/aws-sdk/lib/request.js:688:14)
at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /app/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:690:12)
at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/app/node_modules/aws-sdk/lib/request.js:688:14)
at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /app/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:690:12)
at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
at callNextListener (/app/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
at IncomingMessage.onEnd (/app/node_modules/aws-sdk/lib/event_listeners.js:336:13)
at IncomingMessage.emit (events.js:387:35)
at IncomingMessage.emit (domain.js:470:12)
Код:
var docClient = new AWS.DynamoDB.DocumentClient();
return docClient.put(awsReq).promise();
awsReq:
{
"TableName": "STAGING_POSTS",
"Item": {
"POST_ID": "1629059409440_693b2d29",
"USER_ID": "84d66ce36e35feba903f3f3bf0f69d26",
"TITLE": "test 7",
"PRICE": "1000.0",
"CURRENCY": "usd",
"COUNTDOWN_TIMER": "2021-08-20T20:29:30-04:00",
"VIEW_COUNTS": 0,
"TIME_POSTED": "2021-08-15T16:30:09-04:00",
"TYPE": "SELL",
"CURRENT_LATITUDE": 52.52000659999999,
"CURRENT_LONGITUDE": 13.404954,
"CURRENT_ADDRESS": "Berlin",
"LIGHT_CONTENT": [false],
"CATEGORY": "Restaurant",
"POST_LANGUAGE": "en",
"UPDATED_AT": "2021-08-15T16:30:09-04:00",
"DELETED_AT": null,
"CURRENT_GEOHASH_1": "u",
"CURRENT_GEOHASH_2": "u3",
"CURRENT_GEOHASH_3": "u33",
"CURRENT_GEOHASH_4": "u33d",
"CURRENT_GEOHASH_5": "u33dc",
"CURRENT_GEOHASH_6": "u33dc0",
"PHOTO_URL": ["https://s3.amazonaws.com/790aed2959b2.jpeg"]
}