Javascript Meteor.settings对象在何时何地初始化?
正如标题所说,我需要知道Meteor.settings对象何时初始化 我想做的是,使用一些默认值提前创建这个对象,并在meteor初始化对象时使用设置文件中的值覆盖这些值 Atm i应用如下默认值: settings.json: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
{
"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)})代码>