【问题标题】:Is there a way to skip loading certain config files in sails.js app?有没有办法跳过在sails.js 应用程序中加载某些配置文件?
【发布时间】:2019-12-11 23:46:52
【问题描述】:

有没有办法将 .js 文件放在sails.js /config 目录中并指示sails 跳过它们?即在提升时不会自动加载它们?

我想利用sails.js config.custom 功能。但是,我的应用程序有大量的自定义设置,所以我想将它们拆分为单独的文件(即 custom1.js、custom2.js 等)但是,我需要按特定顺序加载自定义设置,因为这些设置是指每个其他,因为在创建设置时正在执行的代码。

我当时的想法是使用 custom.js 文件根据需要加载我的设置模块,以便我可以控制它的构建方式。也许做这样的事情:

let customSettings1 = require('./custom1.js');
let customSettings2 = require('./custom2.js');
let settings = {
    cust1:customSettings1,
    cust2:customSettings2
}
module.exports.custom = settings;

但是这种方法意味着我需要指示sails.js 忽略我的子集自定义模块,因为custom1.js 一旦存在于/config 文件夹中就会自动加载。有没有办法做到这一点?

【问题讨论】:

    标签: javascript sails.js


    【解决方案1】:

    您无法阻止 Sails 加载某些文件,但仍有解决方案。

    根据额外的研究和@nathanhawks 的回答,看起来 Sails.js 会自动加载 /config 文件夹和子文件夹中的任何 .js 文件……没有办法告诉 Sails 跳过任何内容。但是,它跳过它无法识别的扩展,因此这提供了一个仍然使用 /config 文件夹但控制您正在加载的内容的机会。这是我所做的:

    /config/custom.js /config/custom/settings1.config

    在 custom.js 中你可以这样做:

    let set1 = require('./custom/settings1.config');
    let set2 = require('./custom/settings2.config');
    let set3 = require('./custom/settings3.config');
    
    let mySettings = {
       mySettings1 : set1,
       mySettings2 : set2,
       mySettings3 : set3,
       myFunction : function() {
          // can add custom functions to your custom config object, like special getter/setters or anything else
       }
    }
    module.exports = mySettings;
    

    【讨论】:

      【解决方案2】:

      没有。如果它们位于config 文件夹或任何子文件夹中,它们将被加载。但是,一旦将它们放入新文件夹中,就可以有条件地在 config/custom.js 逻辑中要求它们。

      如果还没有唤醒sails(在配置加载期间)以适应您的逻辑,您可以随时设置配置变量:

      sails.config.custom.test = 'wut';
      console.log(sails.config.custom.test);
      

      【讨论】:

      • 感谢您的确认,经过多次尝试,我也得出了结论,但确实发现它只会包含基于特定扩展名的文件。所以我想出了一个可行的解决方案,我将在另一条评论中发布。
      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多