簡體   English   中英

域之前的URL參數

[英]URL parameters before the domain

我對一般的路由和網址有疑問。 我的問題是關於域本身之前的url中的參數或查詢。 例如:

http://param.example.com/

我問這個問題是因為我使用的是ExpressJS,而您只能在域本身之后定義路由,例如:

http://example.com/yourRoute

它將被添加到URL的末尾。 我想要的是能夠在域本身之前存儲參數。

先感謝您!

費耶

我確實知道如何使用參數和查詢,只是不知道如何在域之前插入它們。

也許此虛擬主機中間件對您的情況很有用: https : //github.com/expressjs/vhost#using-with-connect-for-user-subdomains

否則,類似的方法將起作用:創建一個中間件函數,該函數解析url並將提取的值存儲在請求的屬性中。

您可以創建一個if語句,該語句可以通過包含請求域的express req.headers.host變量查看子域。 例如:

-- google.com/anything/another
req.headers.host => "google.com"

-- docs.google.com/anything/
req.headers.host => "docs.google.com"

所以工作過這個在你的路線,你可以撥打Next()如果請求不符合你想要的形式。

router.get('/', function(req, res, next) {
        if (req.headers.host == "sub.google.com") {
            //Code for res goes here
        } else {
            //Moves on to next route option b/c it didn't match
            next();
        }
    });

這可以擴展很多! 包括已經創建了許多軟件包來完成此操作的事實(例如subdomain )。免責聲明您可能需要考慮www.的使用www. 與一些網址。

所以我會用類似

router.get('/myRoute', function(req, res,next) {
  req.headers.host == ":param.localhost.com"
  //rest of code
}

我想我理解您在說什么,但是我將對我的請求標題進行一些測試和進一步的閱讀。

編輯:現在看來繼續這樣做似乎是不必要的麻煩,因為此刻我也在使用React-router。 所以暫時我只是在/之后使用我的參數。 感謝您的時間和回答。 祝你今天愉快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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