Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js DynamoDB put命令正在插入一个空项_Node.js_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Node.js DynamoDB put命令正在插入一个空项

Node.js DynamoDB put命令正在插入一个空项,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我正在本地开发一个nodejs/dynamodb应用程序。我遇到了将项目放入数据库的问题。创建表可以正常工作,当我插入一个项目时,它表示该项目已成功插入,但显示插入了一个空项目 “已添加项:{}” 它应该显示该项的用户名为“bob”,密码为“password”。我使用的是nodejs、npm、dynamodb-local和javascript-aws-sdk的最新版本 var dynamodb = new AWS.DynamoDB(); var dynamodbDoc = new AWS.Dy

我正在本地开发一个nodejs/dynamodb应用程序。我遇到了将项目放入数据库的问题。创建表可以正常工作,当我插入一个项目时,它表示该项目已成功插入,但显示插入了一个空项目

“已添加项:{}”

它应该显示该项的用户名为“bob”,密码为“password”。我使用的是nodejs、npm、dynamodb-local和javascript-aws-sdk的最新版本

var dynamodb = new AWS.DynamoDB();

var dynamodbDoc = new AWS.DynamoDB.DocumentClient();

var createUsersTable= {
    TableName : "Users",
    KeySchema: [
        { AttributeName: "username", KeyType: "HASH"}
    ],
    AttributeDefinitions: [
        { AttributeName: "username", AttributeType: "S" }
    ],
    ProvisionedThroughput: {
        ReadCapacityUnits: 1,
        WriteCapacityUnits: 1
    }
};

dynamodb.createTable(createUsersTable, 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));
    }
});



setTimeout( function(){
    var table = "Users";

    var username = 'bob';

    var params = {
        TableName:table,
        Item:{
            "username": 'bob',
            "password": 'password'
        }
    };

    console.log("Adding a new item...");
    dynamodbDoc.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));
        }
    });

}, 4000 );

看到空项的原因是,默认情况下api不会返回插入的项

dynamodbapi使用起来非常笨拙,因为您使用的是nodejs Id,建议您看看如何使用它,它应该提供一个对开发人员更友好的api。保存您的用户数据非常简单,如下所示:

User.create({username : 'bob', password : 'password'}, function (err, user) { });

看到空项的原因是,默认情况下api不会返回插入的项

dynamodbapi使用起来非常笨拙,因为您使用的是nodejs Id,建议您看看如何使用它,它应该提供一个对开发人员更友好的api。保存您的用户数据非常简单,如下所示:

User.create({username : 'bob', password : 'password'}, function (err, user) { });

嗨,瑞安,谢谢你的回复。当我使用query命令尝试获取项目时,它返回undefined。因此,该项目似乎没有被正确地放入。我会看看你发送的链接谢谢!如果amazons自己的sdk不能正常工作,那就太可怕了。应该使用查询api来获取具有相同哈希键和不同范围键的项目列表。在您发布的示例中,我只看到一个哈希键,没有范围。您应该使用getItem api尝试仅通过哈希键获取此项。我尝试了getItem,但仍然返回了相同的结果。我无法理解Amazons JavaScript SDK是否工作?Put和Get应该可以工作,否则为什么他们甚至在生产中有SDK供开发人员使用?那么使用Vogel和SDK有什么区别呢?Vogel是否构建在sdk之上?欢迎AWS javascript sdk确实可以工作,但是DynamoDB api的使用可能会令人困惑和复杂。Vogels库提供了一个更简单、开发人员友好的api,它构建在AWS sdk之上。嗨,Ryan,感谢您的回复。当我使用query命令尝试获取项目时,它返回undefined。因此,该项目似乎没有被正确地放入。我会看看你发送的链接谢谢!如果amazons自己的sdk不能正常工作,那就太可怕了。应该使用查询api来获取具有相同哈希键和不同范围键的项目列表。在您发布的示例中,我只看到一个哈希键,没有范围。您应该使用getItem api尝试仅通过哈希键获取此项。我尝试了getItem,但仍然返回了相同的结果。我无法理解Amazons JavaScript SDK是否工作?Put和Get应该可以工作,否则为什么他们甚至在生产中有SDK供开发人员使用?那么使用Vogel和SDK有什么区别呢?Vogel是否构建在sdk之上?欢迎AWS javascript sdk确实可以工作,但是DynamoDB api的使用可能会令人困惑和复杂。Vogels库提供了一个更简单、开发人员友好的api,它构建在AWS sdk之上。