Sails.js条件模型加载

时间:2016-12-09 15:21:33

标签: javascript sails.js

我正在寻找一种方法,在api/models/sails.lift()的Sails应用中有条件地加载sails.load()文件夹中的模型。理想情况下,根据NODE_ENV,这些模型将被加载或不会被加载。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

经过大量的查找和搜索,我找不到任何可以让你通过配置文件或类似的东西有条件地加载模型的东西。所以我做的是:

<script type="text/javascript">
    function edit_shout($id) {
         $("#panel_edit_shout").slideDown();
         $('#update').val($id);
         $('#delete').val($id);
         $.ajax({
             url : "/chat?loadModule=3&id=" + $id,
             dataType: "text",
             success : function (data) {
                 $("#updateshoutmessage").val(data);
             }
         });
   }
</script>

这样,当应用加载特定环境名称时,它可能会加载模型,也可能不会加载模型。可能还有其他方法可以做同样的事情,但这就是我确定的方式。

答案 1 :(得分:1)

使用env var的好主意!这是一个非常有效的解决方法。

如果您愿意在Sails v0.12中稍微生活,您可以将模型定义字典指定为sails.config.orm.moduleDefinitions.models;例如https://github.com/balderdashy/sails-hook-orm/blob/dc361c49e6054aad844c66f74c6e464a35f106f1/test/initialize-with-models.js#L35-L45

这仍然是实验性的,但它现在已经在足够的地方使用,因为它可能会成为API,Sails v1及更高版本的继续添加。

答案 2 :(得分:0)

作为Sails.js v1.0(至少),有一个设置可以添加到您的环境配置文件中以禁止加载模型:

{
  hooks: {
    orm: false
  }
}