gpt4 book ai didi

node.js - 如何将两个 Node.js 应用程序服务器组合在一起。

转载 作者:搜寻专家 更新时间:2023-10-31 23:28:19 25 4
gpt4 key购买 nike

我有两个应用程序。目前在两个不同的端口运行。

脚本1.js:

var express = require('express'),
app = require('express').createServer(

express.cookieParser(),
// Parses x-www-form-urlencoded request bodies (and json)
express.bodyParser()
)
;

app.get('/s1/output', function(sReq, sRes){
// set cookie

sRes.send('<div>Out from 1!</div>');
});

app.listen(3000);

这里是 script2.js

var express = require('express'),
app = require('express').createServer(

express.cookieParser(),
// Parses x-www-form-urlencoded request bodies (and json)
express.bodyParser()
)
;

app.get('/s2/output', function(sReq, sRes){
// set cookie

sRes.send('<div>Out from 2!</div>');
});
app.listen(3001);

好的..它在两个不同的端口上分别运行并且没有问题。

现在。故事是,我只能使用端口 80 进行生产。系统管理员不想打开 3000 或其他端口。

而不是合并代码。 (事实上​​ ,我的真实代码很多。并且对 script1 和 script2 有不同的配置设置),我该怎么做才能使它们都在端口 80 上?但是调用/s1/output 会转到 script1,而/s2/output 会转到 script2?

我正在考虑使用另一个脚本。在端口 80 上运行的 script80.js。并且它需要 script1 和 script2。

但是,问题是,我应该从脚本 1 和脚本 2 导出什么?我应该:

define all get / post methods, and then, 
module.exports.app =app?

在 script80.js 中,我应该做这样的事情吗:

app.get('/s1/*', function (res, req)) {
// and what do now? app1(res) ?
}

嗯嗯

最佳答案

如果你有域或子域指向这个服务器,你也可以使用vhost中间件:

app.use(express.vhost('s1.domain.com', require('s1').app));
app.use(express.vhost('s2.domain.com', require('s2').app));

app.listen(80);

完整示例:https://github.com/expressjs/express/blob/master/examples/vhost/index.js

关于node.js - 如何将两个 Node.js 应用程序服务器组合在一起。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866751/

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