gpt4 book ai didi

node.js - 我可以在单独的模块中路由 Express Controller 和基本 NodeJS 服务器吗

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:31 24 4
gpt4 key购买 nike

我有一个要求。依赖于使用不同模块的 HOST header ,就像使用expressjs 的 www.myhost.com 和使用基本 Nodejs https.createServer() 的 *.h.myhost.com 一样。它们在同一端口工作。

https.createServer(options,function(req, res){
if(req.host === "www.myhost.com"){
express.handle(req,res) //what I hope
return
}
//handle by normal way
})

如何做到这一点?

最佳答案

您可以使用node-http-proxy由 Node 实。我用它来部署和配置在不同子域下运行的多个应用程序。

示例:

var express = require('express'),
https = require('https'),
proxy = require('http-proxy');

// define proxy routes
var options = {
router: {
'www.myhost.com': '127.0.0.1:8001',
'*.h.myhost.com': '127.0.0.1:8002'
}
};

// express server for www.myhost.com
var express = express.createServer();

// register routes, configure instance here
// express.get('/', function(res, req) { });

// start express server
express.listen(8001);

// vanilla node server for *.h.myhost.com
var vanilla = https.createServer(options,function(req, res){
// handle your *.h.myhost.com requests
}).listen(8002);

// start proxy
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(80);

我不确定是否在 http-proxy 路由表 (*.h.myhost.com) 中使用通配符,但由于这些值在 node-http-proxy 中转换为正则表达式,我认为它们可以工作。

关于node.js - 我可以在单独的模块中路由 Express Controller 和基本 NodeJS 服务器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com