Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 动态生成子域_Node.js_Angularjs_Express_Mean Stack - Fatal编程技术网

Node.js 动态生成子域

Node.js 动态生成子域,node.js,angularjs,express,mean-stack,Node.js,Angularjs,Express,Mean Stack,我正在开发一个MEAN应用程序,它为人们提供他们自己独特的子域,作为他们注册过程的一部分。我该怎么做 我对我使用的云服务持开放态度,例如,我对Digital Ocean印象深刻,但它也可能是AWS。只要它是可伸缩的 例如,当Bob与我们签约时,您如何生成bobsmith.nicksamazingnewapp.com?对他来说,能马上使用它吗?我认为最好的解决方案是为子域设置一个通配符,这样任何东西都可以被追踪到*.nicksamazingnewapp.com,然后你可以决定它指向的服务器端 ap

我正在开发一个MEAN应用程序,它为人们提供他们自己独特的子域,作为他们注册过程的一部分。我该怎么做

我对我使用的云服务持开放态度,例如,我对Digital Ocean印象深刻,但它也可能是AWS。只要它是可伸缩的


例如,当Bob与我们签约时,您如何生成bobsmith.nicksamazingnewapp.com?对他来说,能马上使用它吗?

我认为最好的解决方案是为子域设置一个通配符,这样任何东西都可以被追踪到*.nicksamazingnewapp.com,然后你可以决定它指向的服务器端

app.get('/', function(req, res) {

  var hostname = req.headers.host.split(":")[0];

  if(hostname == "sub1.domain.com")
    res.send("this is sub1 response!");
  else if(hostname == "sub2.domain.com")
    res.send("this is sub2 response!");

});
代码的学分归@Jazor


您还可以尝试一个模块

虚拟主机是一个不错的选择。看看我前几天遇到的这个新图书馆。您只是在使用vhost中间件

这是他们网站上的一个代码示例

// create main app
var app = connect()

// add vhost routing to main app for mail
app.use(vhost('mail.example.com', mailapp))

// route static assets for "assets-*" subdomain to get
// around max host connections limit on browsers
app.use(vhost('assets-*.example.com', staticapp))

仅供参考,如果您正在使用,则需要在config/express.js文件中添加middlware

您可以将Nginx或Apache作为代理运行,然后将请求重写为从
sub.domain.com
转到
domain.com/sub