我的目标是尝试在节点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通信?你能回答一些示例代码吗? –