在寫PHP的時候因為不同專案,所以要有不同的hostname,常常會修改Apache的httpd.conf
中的VirtualHost
在PHP修改的都很熟悉了,但是Node.js,說真的還不是很熟一開始還真的不知道怎麼改
不過Google後知道Express
內建了vhost
可以達到virtual host的效果
如果是在本機模擬的話,請記得修改hosts
指向127.0.0.1
唷
廢話不多說,開始介紹怎麼使用vhost吧!
首先需要3個js檔,其中2個檔代表兩個不同的domain,而最後一個檔是負責routing的
A.js
var express = require('express');var app = express();app.get('/*', function(req, res) {
res.send('Hello World');});module.exports = app;
B.js
var express = require('express');var app = express();app.get('/*', function(req, res) {
res.send('Hello Shiny');});module.exports = app;
C.js
var express = require('express');var vhost = require('vhost');var app = module.exports = express();app.use(vhost('a.shinychang.net', require('./A.js')));app.use(vhost('*.shinychang.net', require('./B.js')));app.use(vhost('shinychang.net', require('./B.js')));app.listen(80);
最後在執行
node C
透過這樣的設定就可以讓a.shinychang.net
顯示Hello World
而任何a.shinychang.net
以外的sub-domain都會顯示Hello Shiny
就可以針對不同的sub-domain顯示不同的內容,並且有各自獨立的程式碼