Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor.settings对象在何时何地初始化?_Javascript_Meteor - Fatal编程技术网

Javascript Meteor.settings对象在何时何地初始化?

Javascript Meteor.settings对象在何时何地初始化?,javascript,meteor,Javascript,Meteor,正如标题所说,我需要知道Meteor.settings对象何时初始化 我想做的是,使用一些默认值提前创建这个对象,并在meteor初始化对象时使用设置文件中的值覆盖这些值 Atm i应用如下默认值: settings.json: { "foo" : { "bar":true } } javascript: bar = Meteor.settings.foo.bar == undefined ? false : Meteor.settings.foo.ba

正如标题所说,我需要知道Meteor.settings对象何时初始化

我想做的是,使用一些默认值提前创建这个对象,并在meteor初始化对象时使用设置文件中的值覆盖这些值

Atm i应用如下默认值:

settings.json:

{
    "foo" : {
        "bar":true
    }
}    
javascript:

bar = Meteor.settings.foo.bar == undefined ? false : Meteor.settings.foo.bar;
我必须为每一处财产做这些

只需提前创建
Meteor.settings.foo
对象,并在属性出现在设置文件中时覆盖它们就更好了

更新: 好的,我发现了问题

我在函数外设置foo.bar:

var foo = Meteor.settings.foo
所以现在还没有定义。但是后来在函数中,当我访问属性时,我没有得到对Meteor.settings.foo的更新引用


无论如何,thx需要帮助。

Meteor.settings
将从服务器启动时立即加载。但是,可以随时覆盖该对象。 我通常将覆盖放在server/main.js中,在
Meteor.startup

// server/main.js

Meteor.startup(() => {
  Meteor.settings = {} // your new object

})

但是,请注意覆盖。在整个系统中,它应该在一个时间和一个地方完成,这样所有事情都是一致的

Meteor.settings
将从服务器启动时立即加载。但是,可以随时覆盖该对象。 我通常将覆盖放在server/main.js中,在
Meteor.startup

// server/main.js

Meteor.startup(() => {
  Meteor.settings = {} // your new object

})

但是,请注意覆盖。在整个系统中,它应该在一个时间和一个地方完成,这样所有事情都是一致的

要获得Meteor中所有设置的词汇表,我建议您在Meteor.startup函数中使用以下小代码:

Meteor.startup(function() {

    // read environment variables from Meteor.settings
    if(Meteor.settings && _.isObject(Meteor.settings)) {
        for(let variableName in Meteor.settings) {
            process.env[variableName] = Meteor.settings[variableName];
        }
    }
});
您现在可以在服务器端访问您的设置,如下所示:

process.env.foo.bar

希望能有所帮助。

要获得Meteor中所有设置的词汇表,我建议您在Meteor.startup函数中使用以下小代码:

Meteor.startup(function() {

    // read environment variables from Meteor.settings
    if(Meteor.settings && _.isObject(Meteor.settings)) {
        for(let variableName in Meteor.settings) {
            process.env[variableName] = Meteor.settings[variableName];
        }
    }
});
您现在可以在服务器端访问您的设置,如下所示:

process.env.foo.bar

希望能有所帮助。

您好,我添加了一个属性
Meteor.settings.foo
,直接打印出来。但是,当我尝试在
Meteor服务器重新启动后访问此属性时,或者
启动了你的应用程序时,似乎没有定义属性foo。你在哪里访问
foo
属性?您不能在Meteor.settings中自由放置属性。阅读更多关于设置的信息,在这里创建了一个文件
/server/defaults.js
,并像下面这样将代码放在里面
if(Meteor.isServer){Meteor.startup(function(){Meteor.settings.foo={..}console.log(Meteor.settings)})
Hello,我添加了一个属性
Meteor.settings.foo
,直接打印出来。但是,当我尝试在
Meteor服务器重新启动后访问此属性时,或者
启动了你的应用程序时,似乎没有定义属性foo。你在哪里访问
foo
属性?您不能在Meteor.settings中自由放置属性。阅读更多关于设置的信息,在这里创建了一个文件
/server/defaults.js
,并像下面这样将代码放在里面
if(Meteor.isServer){Meteor.startup(function(){Meteor.settings.foo={..}console.log(Meteor.settings)})