我的目標是嘗試在節點js服務器的一個實例中擁有多個Node JS「apps」。例如,在傳統的PHP託管中,您可以將不同的文件夾放在www目錄中,這些文件夾將作爲單獨的路線。如果我將folder1和folder2作爲轉到www.example.com/folder1或www.example.com/folder2的子目錄,將成爲他們自己的應用程序,並擁有自己的index.html和所有內容。在單個包含服務器內隔離節點JS「應用程序」
使用Node JS它有點不同,因爲不是調用單獨的服務器端PHP腳本,而是調用正在運行的主服務器。有了像socket.io這樣的東西,你可以使用套接字('on'...)和套接字('emit'...)與服務器進行通信,而不是調用特定的腳本,而是與服務器通信。
我想嘗試節點JS內模仿PHP功能
這可能是一個示例文件結構:
main
|--sites
|--site1
| |--index.js
| |--public
|--site2
| |--index.js
| |--public
|--landing
|--index.js
|--public
|--app.js
我會想象app.js文件將在所有航線它。它會指定「/」是登陸文件夾,「/ site1」是site1文件夾等。
然而,我想要的東西是,這些「應用程序」是孤立的。 index.js將是與該應用程序隔離的服務器。路由和該應用程序中的所有內容都將再次完成,就像它是一個新的app.js一樣,但它們不是單獨的節點應用程序,只是子目錄。
這可能嗎?你能給我一些示例代碼來實現嗎?
當你說應用程序時,你是指快遞。如果是這樣,在你的路線上,你只需創建另一個快速應用程序,並將其附加到路線。 – Keith
你可以通過在你的節點應用前面放置一個代理來實現這一點,然後代理可以根據主機名或頭部等信息將流量發送到正確的主機/端口。 – Aknosis
@Keith你可以詳細說明一下嗎?像這樣: 'app.use('/ firstsite',require('./ sites/firstsite'))'? 這些文件夾中的每個文件夾中的index.js文件是否充當該應用程序的獨立服務器,還是試圖與app.js通信?你能回答一些示例代碼嗎? –