gpt4 book ai didi

node.js:DynamoDB DocumentClient 返回空对象

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:26 27 4
gpt4 key购买 nike

我在本地使用 DynamoDB,可以创建和删除表。我创建了一个只有一个键的表,如下所示

const tablePromise = dynamodb.listTables({})
.promise()
.then((data) => {
const exists = data.TableNames
.filter(name => {
return name === tableNameLogin;
})
.length > 0;
if (exists) {
return Promise.resolve();
}
else {
const params = {
TableName: tableNameLogin,
KeySchema: [
{ AttributeName: "email", KeyType: "HASH"}, //Partition key

],
AttributeDefinitions: [
{ AttributeName: "email", AttributeType: "S" },
],
ProvisionedThroughput: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10
}
};
dynamodb.createTable(params, function(err, data){
if (err) {
console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2));
}
});
}
});

现在我想在下面的例子doc 的表中插入一个项目在AWS。

var docClient = new AWS.DynamoDB.DocumentClient();
var tableNameLogin = "Login"
var emailLogin = "abc@gmail.com";

var params = {
TableName:tableNameLogin,
Item:{
"email": emailLogin,
"info":{
"password": "08083928"
}
}
};

docClient.put(params, function(err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));

} else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
});

当我运行插入项目代码时,我得到 Added item:{} 为什么输出一个空对象?它实际上插入了什么吗?我调查了this callback example但是这次它没有输出任何东西。

最佳答案

您需要将 ReturnValues: 'ALL_OLD' 添加到您的 put 参数中。它看起来像下面提到的那样。

var params = {
TableName:tableNameLogin,
Item:{
"email": emailLogin,
"info":{
"password": "08083928"
}
},
ReturnValues: 'ALL_OLD'
};

更多详情可以关注这个https://github.com/aws/aws-sdk-js/issues/803

关于node.js:DynamoDB DocumentClient 返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45622651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com