Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Javascript 理解Express Node.js中的vhost_Javascript_Node.js - Fatal编程技术网

Javascript 理解Express Node.js中的vhost

Javascript 理解Express Node.js中的vhost,javascript,node.js,Javascript,Node.js,我正在试图理解vhost在Express JS中的实际工作原理。这是一个工作代码示例(忘了我从哪里提取的): 现在,我的问题是,为什么我们要调用createServer()两次?为什么这会起作用?vhost是否在内部将两台服务器“合并”在一起?Node.js是事件驱动的,当请求传入时,会在http.Server上引发request事件。因此,基本上,express.vhost(或者实际上)是一个中间件函数,它在http.Server的另一个实例上引发request事件: function vho

我正在试图理解
vhost
在Express JS中的实际工作原理。这是一个工作代码示例(忘了我从哪里提取的):


现在,我的问题是,为什么我们要调用
createServer()
两次?为什么这会起作用?
vhost
是否在内部将两台服务器“合并”在一起?

Node.js是事件驱动的,当请求传入时,会在
http.Server
上引发
request
事件。因此,基本上,
express.vhost
(或者实际上)是一个中间件函数,它在
http.Server
的另一个实例上引发
request
事件:

function vhost(req, res, next){
    if (!req.headers.host) return next();
    var host = req.headers.host.split(':')[0];
    if (req.subdomains = regexp.exec(host)) {
      req.subdomains = req.subdomains[0].split('.').slice(0, -1);
      server.emit('request', req, res);
    } else {
      next();
    }
  };
function vhost(req, res, next){
    if (!req.headers.host) return next();
    var host = req.headers.host.split(':')[0];
    if (req.subdomains = regexp.exec(host)) {
      req.subdomains = req.subdomains[0].split('.').slice(0, -1);
      server.emit('request', req, res);
    } else {
      next();
    }
  };