模块外的参考sails配置.exports

时间:2015-10-25 15:15:36

标签: sails.js

如何在module.exports之外使用sails.config?我试图将sails.config变量传递给另一个对象,如下所示;

var foo = new Foo(sails.config.myconf.myVar);

module.exports {
  bar : function(){
    // Use foo here
    foo.blah();
  }
};

(同样的问题也在此Create config variables in sails.js?的评论中提到了@jreptak评论

3 个答案:

答案 0 :(得分:1)

Sails配置的每个文件都是一个模块,如果你想使用它,你只需要导入它。

以下是导入sails.config.connections模块的Sails连接的示例 请注意require中模块的路径,它必须是相对的。

var connections = require('../../config/connections');

答案 1 :(得分:1)

这在Sails v0.9中是不可能的。但是,现在可以在Sails v0.10以后进行此操作。

以下是github上的具体问题:https://github.com/balderdashy/sails/issues/1672

所以现在你可以这样做:

//MyService.js
var client = new Client(sails.config.client);
module.exports = {
   myMethod: function(callback){
      client.doSomething();
   }
}

如果您遇到Sails v0.9,我建议您按照github问题中指定的解决方法进行操作:

 //MyService.js
var client;
module.exports = function(){
  client = client || new Client(sails.config.client);
  return {
    myMethod: function(){
      client.doSomething();
    }
  }
}

可以这样使用:

//SomeController.js
module.exports = {
   list: function(req,res){
      MyService().myMethod();
   }
}

答案 2 :(得分:0)

你不能这样做,如果你想访问sails.config参数,你必须创建一个自定义钩子http://sailsjs.org/documentation/concepts/extending-sails/hooks并在其中做你的'魔术'