2015-05-05 2 views
3
var path = require('path'); 
module.exports = { 
    site: { 
     contactEmail: '[email protected]', 
     baseUrl: "http://localhost:3000/", 
     uploadPath: path.join(__dirname, '../public'), 
     language:'en' 
    }, 
    mongodb: { 
     url: 'mongodb://localhost:27017/psp', 
    } 
} 

Я установил статический baseUrl в своем файле конфигурации в node.js.Как могу я сделать динамический на разных серверах?Как установить baseUrl в моем файле конфигурации node.js

, как: -

var http = require('http'); 
var url = require('url') ; 

http.createServer(function (req, res) { 
    var hostname = req.headers.host; // hostname = 'localhost:8080' 
    var pathname = url.parse(req.url).pathname; // pathname = '/MyApp' 
    console.log('http://' + hostname + pathname); 

    res.writeHead(200); 
    res.end(); 
}).listen(8080); 

вар имя хоста = req.headers.host; // hostname = 'localhost: 8080'

Я хочу этот тип вывода в моем файле конфигурации.

ответ

3

Как все мы знаем, module.exports возвращает объект javascript. поэтому мы можем использовать свойство get/set для изменения значения любого свойства объекта.

module.exports={ 
    baseUrl : "/xyz", 
    setBaseUrl : function(url){ 
    this.baseUrl = url; 
    } 
    getBaseUrl : function(){ 
    return this.baseUrl; 
    } 
} 

var http = require('http'); 
var url = require('url') ; 
var config = require('path/to/your/configFile'); 

http.createServer(function (req, res) { 
    var hostname = req.headers.host; // hostname = 'localhost:8080' 
    config.setBaseUrl(hostname); 
    var pathname = url.parse(req.url).pathname; // pathname = '/MyApp' 
    console.log('http://' + congif.getBaseUrl() + pathname); 

    res.writeHead(200); 
    res.end(); 
}).listen(8080); 
+0

Что такое URL? Я хочу, чтобы динамический url ... –

+0

просто вызывал эту функцию setBaseUrl, где вы получаете имя хоста из запроса. 'http.createServer (функция (Req, Рез) { вар имя хоста = req.headers.host; // имя хоста = 'локальный: 8080' // Здесь конфиг ваши module.exports объект config.setBaseUrl (имя хоста); var pathname = url.parse (req.url) .pathname; // pathname = '/ MyApp' console.log ('http: //' + имя хоста + путь); res.writeHead (200) res.end(); }). Listen (8080); ' –

+0

pls update ur answer.I возьму его оттуда –

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