Nodejs课堂笔记-第五课 在nodejs中使用DynamoDB Local

本文介绍如何在Node.js环境中使用Amazon DynamoDB Local。通过配置Amazon账户信息,创建指向Local的endpoint,执行创建表和查询表的操作。文章指出DynamoDB官方文档的部分不足,并展示了成功创建表的参数示例,同时强调首次运行时因异步操作可能遇到的问题。
摘要由CSDN通过智能技术生成

从博客园搬到了CSDN,具体原因就不明说了,简单一句话就是原创被当抄袭,这种感觉很不爽。

好了,我们继续开始学习历程吧。在第四课中,我们介绍了DynamoDB Local版本的使用方式。这节课中,我们开始在nodejs中使用DynamoDB。

在Amazon的网站中,提供了一个DynamoDB的sample,请看下面:

// Load the SDK and UUID
var AWS = require('aws-sdk');
var uuid = require('node-uuid');

// Create an S3 client
var s3 = new AWS.S3();

// Create a bucket and upload something into it
var bucketName = 'node-sdk-sample-' + uuid.v4();
var keyName = 'hello_world.txt';

s3.createBucket({Bucket: bucketName}, function() {
   
  var params = {Bucket: bucketName, Key: keyName, Body: 'Hello World!'};
  s3.putObject(params, function(err, data) {
   
    if (err)
      console.log(err)
    else
      console.log("Successfully uploaded data to " + bucketName + "/" + keyName);
  });
});

这段示例代码直接使用的DynamoDB Web Service,而不是DynamoDB Local服务。和我们的需求不太一样,所以再次研究Amazon的API文档。

看到dynamodb在使用之前需要配置amazon账户,点击这里查看配置说明。 按照文档中的说明,我们补充下面的配置代码:

/* Auth Config */
AWS.config.update({
    aws_access_key_id : "andy-aws-account",
    aws_secret_access_key : "andy-aws-account",
    region : "eu-west-1"
})

在第四课中提到过,当使用local模式时,账户信息都会被忽略。因此输入任意账户信息都可以。

下一步就是创建一个指向local的endpoint,我们使用下面代码进行创建:

dyn= new AWS.DynamoDB({ endpoint: new AWS.Endpoint('http://localhost:8000') });

当endpoint创建成功后,就相当于获取了一个dynamodb的实例,下面就可以执行SQL操作了。我们首先做一个简单的操作:创建一张表,再查询所有表。

在dynamodb的api中,创建表的API是(点击这里,查看API文档):

createTable(params = {}, callback) ⇒ AWS.Request

需要给createTable传递一个参数对象,这个参数对象有些复杂:

var params = {
  AttributeDefinitions: [ /* required */
    {
      AttributeName: 'STRING_VALUE', /* required */
      AttributeType: 'S | N | B' /* required */
    },
    /* more items */
  ],
  KeySchema: [ /* required */
    {
      AttributeName: 'STRING_VALUE', /* required */
      KeyType: 'HASH | RANGE' /* required */
    },
    /*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值