Javascript 在没有Express的情况下,如何在Node.js中路由子域?

Javascript 在没有Express的情况下,如何在Node.js中路由子域?,javascript,node.js,Javascript,Node.js,解释如何使用Express在Node.js中路由子域的答案 我想知道没有快递怎么办 这是我的服务器模块,它返回一个服务器对象: module.exports.serve = function(port) { var server = https.createServer(options, function(req, res) { // Parse & process URL var reqInfo = url.parse(req.url, tru

解释如何使用Express在Node.js中路由子域的答案

我想知道没有快递怎么办

这是我的服务器模块,它返回一个服务器对象:

module.exports.serve = function(port) {
    var server = https.createServer(options, function(req, res) {

        // Parse & process URL
        var reqInfo = url.parse(req.url, true, true), 
            path    = reqInfo.pathname;
        debug.log("Client [" +  req.connection.remoteAddress + 
                "]requesting resource: " + path);

        // Quickly handle preloaded requests
        if (preloaded[path])
            preloadReqHandler(req, res, preloaded[path], path);

        // Handle general requests
        else generalReqHandler(req, res, reqInfo);
    }).listen(port);
    return server;
};
无需详细介绍处理请求的模块,我只对如何通过服务器检测www.example.com并将其路由到example.com或反之亦然感兴趣


为了尽可能多地添加细节,我的目标是从http://www.example.com 和http://example.com 和https://www.example.com 并将其全部发送给https://example.com. 要做到这一点,我想我只需要学习如何路由www子域,然后在http和https端口上侦听该路由

自HTTP 1.1以来,用户代理发送指定域的主机请求头。因此,如果从req.headers['host']指定,您可以获取包含端口的域,并应用自定义域路由逻辑


如果您使用的是HTTP 1.0或更老的用户代理,则只需使用不支持的505 HTTP版本回复,或提供一些默认内容。

我不擅长这方面,因此不将此作为回答,但如果您不使用express,您只需检查它是否以return a 302 with开头,然后所有内容都将被快速重定向。