arrays - 检查表项是否不存在。如果为空,如何检查返回的“项目”数组?Javascript/DynamoDB
问题描述
我正在尝试查看 DynamoDB 数据库中是否存在某个项目。但是我找不到一个直截了当的答案。所以我正在使用该getItem()
操作。
这将返回一个 JSON。在文档中它说如果在数据库中没有找到项目,则返回的项目应该是空的。但是,我似乎无法弄清楚如何检查这个返回值是否为空。我已经尝试过if(data == "undefined"){
//PutItem - DynamoDB table: check if group exists
var dynamodb5 = new AWS.DynamoDB({ region: AWS.config.region });
var identityId = AWS.config.credentials.identityId;
var params = {
Key: {
"groupName": {
S: groupname
}
},
TableName: "group"
};
dynamodb5.getItem(params, function(err, data) {
if (err){
console.log(err, err.stack); // an error occurred
alert("This group doesnt exist.")
}else{
// successful response console.log(data);
if(data.Items[0] == "undefined"){
console.log("ITS WORKING");
}
}
解决方案
getItem
响应不包括,Items
它包括Item
(请参阅文档)。如果有具有给定键的项目或没有项目,它将返回一个项目。
您可以按如下方式检测到这一点:
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB({ region: 'us-east-1' });
const params = {
Key: {
'groupName': {
S: groupname,
},
},
TableName: 'group',
};
ddb.getItem(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else if (data.Item) {
console.log(JSON.stringify(data));
} else {
console.log('Success, but no item');
}
});
小提示:var
现在我们有let
和,几乎没有理由使用const
.
推荐阅读
- python - 自定义 QTreeWidgetItem Pyside2
- android - Delphi Android Firebase Cloud Messaging:收到通知时应用程序崩溃
- python - Python - 保存时设置 TIFF 图像分辨率的枕头
- typescript - 是否有在 TypeScript 中使用嵌套类作为类型的方法
- c# - Parallel.ForEach 中的嵌套异步方法
- api - Flutter:为什么我的构建器在 Web 服务调用后没有重新加载?
- jquery - 如何在拖放jQuery中检查空放置区域
- swiftui - 如何使用 SWIFTUI 将 textField 作为 firstResponder 与 Swift 一样:textField.becomesFirstResponder
- octave - 拉格朗日多项式未在 Octave 中绘制
- python - 为什么我不能从模块目录内部和外部导入模块?