2015-03-12 1 views
0

Относительно новый для веб-разработки, и я не знаю шаблона для решения следующей проблемы. В моем Node.js приложение, я мог бы использовать библиотеку запрос, чтобы сделать запрос HTTP к ресурсу на сервере, так и на сервере я могу проверить, нахожусь ли я в разработке или производстве, как так:Node.js шаблон для root_url в производстве или разработке

if('production' == process.env.NODE_ENV) 

но на переднем конце, используя Backbone например,

var Player = Backbone.Model.extend({ 
    idAttribute: "_id", 
    urlRoot: 'http://localhost:3000/api/players' //hardcoded for development only 
}); 

Как я могу избежать жесткого кодирования «локальный» в мой передний конец, проверяя, является ли это сервер разработки или производства?

Каков наилучший шаблон для решения этой проблемы?

+0

Одно из решений, которое я обнаружил, - это просто использовать относительные пути, чтобы вместо «http: // localhost: 3000/api/players» просто сделать это/api/players ' –

ответ

0

Вы можете просто приложить свои свойства окружающей среды к своему окну (или, более предпочтительно, к пространству имен приложений).

//Attach and object to the window 
window.ENV = {}; 
//Add an environmental variable (that can be written by the server) 
window.ENV.app_env = 'development'; 

//Keep all dev/test/prod urls in an object... 
var server_urls = { 
    development: 'localhost:8080', 
    test: '192.168.0.2:3030', 
    production: 'mysite.co.uk', 
} 
//... 

//Then build the url when you need it. 
var server_url = server_urls[window.ENV.app_env]; 
Смежные вопросы