我有两个Express JS应用程序,我想在另一个内部添加一个路由,所以当请求此链接时,它将转到子应用程序。那可能吗?
示例:
主要应用程序可通过www.linktoapp.com链接访问,并以Express js。
编写现在我开发了另一个Express js应用程序,我想通过链接访问www.linktoapp.com/secondapp
我的问题是我可以在主应用程序中添加此路由(/ sceondapp),以便我可以像我说的那样访问它吗?
感谢。
答案 0 :(得分:0)
你的问题有点令人困惑!我从你的问题中理解的是:
您正在运行两个expressjs应用程序。两个应用程序无法在同一端口上运行。但是,两个应用程序可以运行在两个不同的端见下面的例子。
var express = require("express");
var app1 = express(); //created the first app
var app2 = express(); //created the second app
app1.get("/",function(req,res){
res.send("<html><body><a href='/sec'>go second app</a></body></html>");
// created a link to app2
});
app1.get("/sec",function(req,res){ // redirection to second app
res.redirect("http://localhost:3001/");
})
app2.get("/",function(req,res){
res.send("welcome to second app");
});
app2.listen(3001,function(){ // app2 is listening on port 3001
console.log("app two is listening on 30001 ")
});
app1.listen(3000,function(){ // app2 is listening on 3000
console.log("app1 is listening on 3000");
});
答案 1 :(得分:0)
您总是可以在2个端口上运行两个单独的快速进程,然后反向代理请求。
答案 2 :(得分:0)
您想要的是创建一个Express子应用程序。 Express子应用程序与主应用程序共享路线,视图,会话等。
例如,假设您希望一个节点应用程序s_app.js成为另一个节点应用程序p_app.js的子应用程序。
<强> s_app.js 强>
var express = require('express');
var app = module.express = express();
// set routes for userjs
app.get('/path_1', function(req, res){
// display path_1
});
<强> p_app.js 强>
var express = require('express');
var app = express();
var s_app = require('s_app'); // mount s_app.js
app.use(s_app);
// now p_app and s_app share routes, views, sessions, etc
如果您想了解更多细节,请查看我在how to build node.js sub-apps
上撰写的教程