簡體   English   中英

如何為Node.js應用程序設置本地子域

[英]How to set up local subdomains for Node.js app

我正在node.js上運行一個快速應用程序。 該應用程序使用express-subdomain模塊來幫助處理兩個不同子域(sub1.example.com和sub2.example.com)的路由。 我在AWS Elastic Beanstalk上托管應用程序。 在我的生產環境中,一切都很棒。 但是在我的本地機器上,我無法讓它工作。 我嘗試將子域添加到我的主機文件127.0.0.1 localhost sub1.localhost sub2.localhost 雖然這允許我將子域添加到localhost,但模塊不會將其識別為有效的子域,因此在我的根路由中搜索子域路由。

在main.js中:

var routes = require('./routes/index')(passport);
var sub1_routes = require('./routes/sub1')(passport);
var sub2_routes = require('./routes/sub2')(passport);

app.use(subdomain('sub1', sub1_routes));
app.use(subdomain('sub2', sub1_routes));
app.use('/', routes);

我需要能夠在本地處理這個問題。 將一個小的更改推送到AWS測試,迭代等需要花費很多時間。

我是模塊的作者:)

對於您希望在本地測試的每個新子域,必須添加到/ etc / hosts文件中。 例如:

localhost是:

127.0.0.1       localhost

一個新的子域名將是......

127.0.0.1       sub1.localhost

和另一個..

127.0.0.1       sub2.localhost

看看我在測試中做了些什么。

我有同樣的問題,我找到了一個簡單的解決方案。 而不是寫的sub1.localhost嘗試替換localhostlvh.me這是始終解析本地主機,現在只要你寫了一個域sub1.lvh.me即使像端口sub1.lvh.me:3000它仍然會正常工作。

在Ubuntu上

要為localhost創建子域,您只需按照兩個簡單的步驟操作即可。

CTRL + ALT + T打開終端,然后運行以下命令:

sudo vi hosts
sudo -i gedit /etc/hosts # to edit /etc/hosts file

一旦你運行第二個命令/etc/hosts文件將打開,現在這是你需要定義子域的地方。

示例: localhost是:

127.0.0.1       //our localhost

define new subdomain:
127.0.0.1       example.localhost   # first

和另一個..

127.0.0.1       demo.localhost      #second

而已。 希望這有用。

有一個很棒的網站,有人托管給我們所有人。

localtest.me

所有請求都將路由到127.0.0.1,包括子域。 例如something.localtest.me:3000將解析為127.0.0.1:3000

但是,例如,在你的Express應用程序中,如果你這樣做

 app.get('*', (req, res) => {
     console.log(req.subdomains); // [ something ]
 });

你會得到你的子域名

暫無
暫無

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

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