【问题标题】:Using Sails.js with AWS DynamoDB....not ideal将 Sails.js 与 AWS DynamoDB 一起使用……不理想
【发布时间】:2016-09-20 00:30:12
【问题描述】:

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

部分 POC 我们希望使用 DynamoDB,因为该项目最终将涉及高可扩展性,我们目前不打算聘请全职 MongoDB 专家。

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

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

sails ORM 似乎不适合 DynamoDB,需要编写自定义 DB 服务。有人有这方面的经验吗?

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

任何人都有这方面的经验,或者可能是我缺少的东西?

【问题讨论】:

    标签: sails.js amazon-dynamodb waterline


    【解决方案1】:
    1. vogels 的一个重要优点是出色的文档。
    2. Sails-dynamodb 适配器基于 vogels,但并非所有功能都在sails-dynamodb 适配器中实现。例如,vogels 有表达式过滤器。
    3. Vogels 能够创建表格。适配器不行。适配器需要sails 文件和dynamodb shell 中的重复表模式。
    4. Vogels有一些自己的类型,如uuid类型、StringSet、NumberSet、TimeUUID。 (适配器也可以使用它,如果包含 Vogels 和 Joi lib)
    5. Vogels 和适配器具有相同的查询(创建、更新、删除、查找)功能。
    6. 适配器允许在不更改代码开关的情况下切换到另一个数据库。适配器封装了与数据库的连接建立。

    结论 - 对于大多数用途,此适配器适用于工作,不需要直接与 Vogels 一起工作

    【讨论】:

      【解决方案2】:

      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?

      【讨论】:

      • 感谢您的详细回复。换掉水线可能是最好的选择是有道理的,所以我们仍然可以保留 Sails.js 提供的灵活性。
      猜你喜欢
      • 2019-10-14
      • 2016-12-28
      • 2023-03-26
      • 2021-06-06
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多