通过JavaScript访问Amazon的DynamoDB上的数据

时间:2012-02-07 16:55:22

标签: javascript node.js amazon-web-services amazon-dynamodb

1)客户端访问:无论如何使用客户端JavaScript(REST / Ajax / jQuery)对DynamoDB执行CRUD操作?

我知道亚马逊支持.NET和Java。

2)服务器访问:我们有没有办法使用服务器端JavaScript(Node.js)访问DynamoDB,而无需在服务器上安装Java / .NET?

4 个答案:

答案 0 :(得分:16)

更新2012-12-05

现在有一个官方AWS SDK for Node.js,请参阅介绍性帖子AWS SDK for Node.js - Now Available in Preview Form了解详细信息,以下是最初支持的服务:

  

SDK支持Amazon S3Amazon EC2 Amazon DynamoDB ,以及   Amazon Simple Workflow Service,支持其他服务   在绘图板上。 [强调我的]


更新2012-02-27

Wantworthy已经实施了一个Node.js模块,用于在发布日期后一周访问Amazon DynamoDB,因此也涵盖2),请参阅dynode

  

Dynode旨在成为与亚马逊合作的简单方便的方式   DynamoDB服务。亚马逊的http api是如此复杂且不明显   与它互动。该客户旨在提供更简化的内容   使用DynamoDB的明显方法,但不妨碍你   或者限制你可以使用DynamoDB做什么。


更新2012-02-11

Peng Xie已经实施了一个Node.js模块,用于在发布日期基本上访问Amazon DynamoDB,因此已覆盖2),请参阅dynamoDB

  

DynamoDB使用JSON进行通信。 [...]此模块包含请求   并负责身份验证。用户将负责   制作请求并使用结果。


不幸的是,目前还没有适用于AWS的官方/完整JavaScript SDK(有关可用产品,请参阅AWS Software Development Kitsboto [Python])。

幸运的是,Node.js库aws-lib已经为JavaScript中的多个AWS服务提供了不错的覆盖,这将是相应添加DynamoDB的良好起点。截至今天,已经提交了Add support for DynamoDB未解决的功能请求。

此外,AWS论坛用户 gmlvsk3 最近实现了专用JavaScript interface for DynamoDB,但据说您需要[a] Java运行时来运行它,因为它基于在Mozilla Rhino JavaScript引擎上 - 我还没有详细检查过代码(乍一看它虽然与例如 aws-lib 相比看起来有点不成熟,但可能会满足您的需求无论如何),所以你应该自己检查一下。

最后,您当然可以自己实现JavaScript HTTP Requests to Amazon DynamoDB(有关详细信息,请参阅API Reference for Amazon DynamoDB):

  

如果您不使用其中一个AWS开发工具包,则可以执行Amazon DynamoDB   使用POST请求方法通过HTTP进行操作。 POST方法   要求您在请求的标题中指定操作   在体内提供JSON格式的操作数据   请求。

答案 1 :(得分:1)

我创建了一个名为Dino的模块,以便更轻松地在Web应用程序中使用AWS SDK。您可以使用Restify之类的东西通过REST接口将数据公开给jQuery。

假设您要为用户显示博客帖子的页面。使用Dino和Restify,您将执行以下操作:

server.get('/posts/:user_id', function(req, res, next){
    Post.find({
        match: {
            user_id: req.params.user_id
        },
        skip: req.params.skip || 0,
        take: req.params.take || 10
    }, function(err, posts){
        return res.send(posts.toJSON());
    });
});

答案 2 :(得分:1)

关于1),现在有AWS SDK for JavaScript in the Browser允许您访问包括DynamoDB在内的服务。

答案 3 :(得分:0)

至于2)自DDB发布日期以来我们一直在努力。它的一个关键特性是简单性/性能以及它与亚马逊官方Java / PHP库的接近程度(重试行为等):

https://github.com/teleportd/node-dynamodb

它成功地用于100多个写/秒(在远程传送)的各个地方的制作。此外,我们正在开发一个模拟版本,以便有效地测试库的客户端代码。