簡體   English   中英

Express-子域路由無法正常工作?

[英]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)以便將其用作默認路由。 (當您不在ocena ,它將使用它)


經過一些測試后編輯

好了,我已經能夠使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM