2012-01-24 2 views
1

Не могу ли я определить переменную, которая будет использоваться в разных envs, когда я определяю env?ExpressJs: переменные конфигурации в разных средах

app.configure 'development',() -> 
app.use express.errorHandler({dumpExceptions: true, showStack: true}) 
mongoose.connect 'mongodb://xxx:[email protected]:10012/xxxx' 
test = "ola23" 

app.configure 'production',() -> 
app.use express.errorHandler() 
mongoose.connect 'mongodb://xxx:[email protected]:10012/xxxx' 
test = "ola" 

я могу определить «mongoose.connect», почему я не могу определить test?

ответ

1

Этот код устанавливает локальную переменную для этой функции конфигурации в значение. Я уверен, что это работает. Но как вам нужно использовать переменную test?

Как вы это сделали, он просто исчезнет, ​​как только эта функция закончится, вы не отправляете и не сохраняете ее в любом месте. Строка mongoose.connect, делает что-то, передает строку в функцию, использующую эту строку, чтобы сделать что-то удивительное. test = "ola" устанавливает только локальную переменную.

Так что, зная, как вы хотите использовать test, сложно советовать больше. Но вы, вероятно, хотите вместо этого:

app.set 'test', 'ola' 

Что вы можете retrive "ola" позже:

app.get 'test' 
+1

фиксирует извлечь из «теста», используя 'app.get«не test'' 'приложения. set 'test'' –

Смежные вопросы