将一个快递js应用程序链接到另一个

时间:2014-11-03 10:28:38

标签: node.js express

我有两个Express JS应用程序,我想在另一个内部添加一个路由,所以当请求此链接时,它将转到子应用程序。那可能吗?

示例:

主要应用程序可通过www.linktoapp.com链接访问,并以Express js。

编写

现在我开发了另一个Express js应用程序,我想通过链接访问www.linktoapp.com/secondapp

我的问题是我可以在主应用程序中添加此路由(/ sceondapp),以便我可以像我说的那样访问它吗?

感谢。

3 个答案:

答案 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个端口上运行两个单独的快速进程,然后反向代理请求。

https://github.com/nodejitsu/node-http-proxy

答案 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

上撰写的教程