将Sails.js与AWS DynamoDB一起使用......并不理想

时间:2016-05-23 08:04:31

标签: sails.js amazon-dynamodb waterline

我开始研究一个小型POC,并决定尝试一下Sails.js:)

POC的一部分我们想要使用DynamoDB,因为该项目最终将涉及高可扩展性,而且我们目前还没有聘请全职的MongoDB专家。

我们使用了模块:https://github.com/gadelkareem/sails-dynamodb

问题是没有文档,模块甚至没有工作......

似乎风帆ORM不适合DynamoDB,需要编写自定义数据库服务。有没有人有这方面的经验?

我很高兴遇到Sails,但如果它不让我们玩DynamoDB那么好,那么它很可能会成为我们的选择......

任何人都有这种经历或者我可能缺少的东西吗?

2 个答案:

答案 0 :(得分:2)

  1. vogels的一个重要优点是出色的文档。
  2. 基于vogels的Sails-dynamodb适配器,但并非所有功能都在sails-dynamodb适配器中实现。例如,vogels具有表达式过滤器。
  3. Vogels能够创建表格。适配器不能。适配器需要sails文件和dynamodb shell中的复制表模式。
  4. Vogels有一些自己的类型,例如uuid类型,StringSet,NumberSet,TimeUUID。 (适配器也可以使用它,如果包括Vogels和Joi lib)
  5. Vogels和适配器具有相同的查询(创建,更新,删除,查找)功能。
  6. 适配器允许不将代码切换到另一个数据库。适配器封装了与数据库的连接建立。
  7. 结论 - 对于大多数用途,此适配器适用于工作,不需要直接使用Vogels

答案 1 :(得分:0)

Sails加载了一个名为“Waterline”的ORM。有一些官方水线插件,如mongodb,postgresql,mysql,然后有一些由社区创建的非官方插件。我现在假设Dynamo属于后一类,因为我之前没遇到过。然而,有了这样说,我不会把这种经历作为放弃Sails.js的理由。

构建Sails.js的目的是可以换掉所有组件,这意味着您不依赖于特定的模板引擎,身份验证库等,包括您的ORM选择。

Waterline仍在积极开发中,但在编写此回复时,它仍然位于v0.12.1。它还没有完全存在,所以仍然存在奇怪的问题!

我的推荐?看一下换掉不同ORM的水线。保持Sails为您提供的灵活性,并更改不符合您标准的组件。您可以使用的Sails还有很多好处。

Vogels可能值得一试:https://github.com/ryanfitz/vogels

关闭水线:Is there a way to disable waterline and use a different ORM in sails.js?