从博客园搬到了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 */
},
/*