【问题标题】:Dynamic Table Specification Per Model Object每个模型对象的动态表规范
【发布时间】:2015-06-12 14:43:06
【问题描述】:

我正在尝试找出一种方法来创建动态模型类型,并将其存储在各自的集合中(对于 CMS)。我希望能够定义一个新的“内容类型”并将其存储在自己的集合中,并使用标准 Sails 模型来控制每个模型。

我正在尝试在保存和获取之前设置tableName,但是没有成功。

所以是这样的:

(Model) Content:
 - id
 - createdDate
 - contentType
 - {n...fields}

(Model) ContentType:
 - id
 - collection (to which each content object would store)
 - name
 - fields
   - field{n}
     - type
     - name
     - required
     - …

我只是不确定如何在sails.js/waterline 中实现这一点

【问题讨论】:

    标签: node.js mongodb sails.js waterline


    【解决方案1】:

    对于帆 >=0.11.0,这是一个可能的解决方案:https://github.com/sgress454/sails-hook-autoreload

    听起来就像你描述的那样:在飞行中重新加载模型而不降低/重新升起帆。

    因此,作为一种基本方法:在您正在编程的管理界面中,添加一个内容类型并将其写入 /api/models/ 文件夹。但是请请,请注意这个的安全问题!然后,当创建模型时,此挂钩将检测到该模型并将新模型加载到内存中。更改和删除模型也应该如此,但我还没有测试过,所以我不能告诉你。

    【讨论】:

    • 是的,这是我希望避免的。我正在考虑做一些事情,当应用程序加载时,它会查看 ContentType 集合,然后创建一个新模型并将该模型直接存储在 RAM 中,我只是不完全确定最好的方法!跨度>
    • 我想这可能是它。您需要将连接声明为“内存”,例如: connection: ['memory'] 。然后你可以做更多的工作。我可能会自己尝试一下,稍后再给你看一个例子。
    【解决方案2】:

    根据 Sails GitHub 页面,这是不可能的,至少不是我希望的方式:

    https://github.com/balderdashy/sails/issues/1160

    真糟糕!如果有人有好的解决方案,请告诉我,我会将其标记为解决方案:)

    【讨论】:

      猜你喜欢
      • 2017-10-14
      • 2016-01-02
      • 1970-01-01
      • 2021-03-18
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多