node.js - 无法从 dynamodb 表中删除项目
问题描述
我有这个函数可以将一个项目添加到 dynamodb 表中。成功后,它应该从另一个表中删除相同的项目。我有一个附加到此的 api 网关触发器。当我在邮递员中测试时。我收到以下错误。“提供的关键元素与架构不匹配”。
分区键是
第一个表:分区键:CandidatEmail 排序键:类型
第二个表:分区键:日期排序键:类型
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set credentials
AWS.config.loadFromPath('./credentials.json');
// // set dynamodb object
var dynamo = new AWS.DynamoDB({region: 'us-east-1',});
exports.handler = (event, context, callback) => {
function getTableName(counselor) {
if(counselor == "Avery Rosser") {
return "Licensed_Level"
}
else if (counselor == "Keshara Rosser") {
return "Masters_Level"
}
}
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials" : false
}
});
const body = JSON.parse(event.body);
var params = {
TableName: "Appointment",
Item: {}
}
var deleteParams = {
TableName: getTableName(body.counselor),
Key: {
"Date": {S: body.date}
}
};
var appointment = {
"CandidateEmail": {S: body.candidateEmail},
"Date": {S: body.date},
"Name": {S: body.name},
"Duration": {S: body.duration},
"Price": {S: body.price},
"Location": {S: body.location},
"Counselor": {S: body.counselor},
"CandidateFirstName": {S: body.candidateFirstName},
"CandidateLastName": {S: body.candidateLastName},
"Type": {S: body.type},
}
params.Item = appointment;
dynamo.putItem(params, function(err, data) {
if(err) {
console.log("error in put item", err)
}
else {
dynamo.deleteItem(deleteParams, done)
}
});
};
解决方案
推荐阅读
- r - 如何在 quosures 列表中输入或包含附加参数?
- python - 使 Bokeh CheckboxGroup 具有文本形式的链接
- python - ValueError:将函数应用于数据帧时,值的长度与索引的长度不匹配
- javascript - 如何遍历多级 json 数据以在反应中返回卡片
- vbscript - 如何在vbscript中重命名具有相同扩展名的不同命名文件
- reactjs - React 引导表中的自定义搜索:未捕获的 TypeError:e.onSearch 不是函数
- javascript - 根据名称查找组合
- php - acf-field-functions.php 中的 HTML 表单呈现
- bash - 在 shell 中设置运行时在容器中派生的环境变量
- flutter - 从电话号码中删除国家代码