[英]Express-subdomain routing not working correctly?
我一直在尋找解決方案,現在嘗試使用Google及其它,現在我在這里。 我正在嘗試使用express-subdomain包為我的應用設置子域。 但是,在下面的示例中,應用程序始終返回app.get路由,並跳過指定的其他子域路由。 我也依次添加了主機文件url,所以我知道這不是問題。
由於某種原因,它必須出現在我的代碼中,即使訪問oce.localhost:3000,它也總是會顯示“檢測區域”路由。
請幫我 :)
Server.js
var subdomain = require('express-subdomain');
var express = require('express');
var app = express();
// Region routes
var router = express.Router();
var na = require('./routes/region/na.js');
var oce = require('./routes/region/oce.js');
router.use(subdomain('na.localhost', na));
router.use(subdomain('oce.localhost', oce));
app.get('/', function(req, res) {
res.send('Detect Region and send to correct subdomain!');
});
app.listen(3000);
路線/區域/oce.js
var
express = require('express'),
router = express.Router();
router.get('/', function(req, res) {
res.send('Your are in OCE Region!');
});
module.exports = router;
na.js幾乎與oce.js一樣
干杯
您可以在router
變量中設置子域,但不要告訴您的應用使用它。
您必須這樣做:
app.use(router);
您將其替換為當前的app.get
。
您也可以將app.get
放在app.use(router)
以便將其用作默認路由。 (當您不在oce
或na
,它將使用它)
好了,我已經能夠使用express-vhost
使其工作。 我只是這樣更新您的server.js
:
var subdomain = require('express-vhost'); var express = require('express'); var app = express(); // Region routes var router = express.Router(); var na = require('./routes/region/na.js'); var oce = require('./routes/region/oce.js'); subdomain.register('na.localhost', na) subdomain.register('oce.localhost', oce) app.use(subdomain.vhost(app.enabled('trust proxy'))); app.get('/', function(req, res) { res.send('Detect Region and send to correct subdomain!'); }); app.listen(3000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.