我是node的新手并且会做出反应,并且尝试在我的MERN应用程序中进行子域路由。 我发现我无法在React中路由我的子域,所以就剩下节点了。 在节点中,有很多方法可以使用它,例如vhost或
app.get('*',(req,res)=>{
res.sendFile(path.resolve(__dirname,'client','build','index.html'))
})
但是我的问题是,我必须为每个子域制作不同的应用程序吗?例如
这是唯一的方法吗?如果是,请问有更多经验的人可以通过这种方式告诉我更多吗? 如果没有,请指导。
答案 0 :(得分:2)
每个与域相似的子域都需要拥有自己的DNS记录,因此它将被重定向到IP地址。您可以将来自不同子域的流量定向到同一服务器,并通过修改DNS记录以相同的方式处理这些流量。
如果这些子域之间没有区别,则可以只使用同一Node.js应用程序来处理所有传入流量。但是,如果您想将来自每个子域的流量安装到不同的端口或路径(例如,将admin.application.com放置到应用程序的/ admin并将otherdomain.application.com放置到/ other路径)。在这种情况下,您可以使用代理应用程序,例如nginx或HAProxy。
我的建议是,如果每个子域的业务逻辑不同,则应开发不同的应用程序。否则,您可以将所有内容都包含在同一应用程序中。
答案 1 :(得分:0)
您可以使用:
req.get('host')
获取主机名。根据主机名,您可以进一步决定路由请求。