2014-11-03 46 views
0

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

实施例:

的主要应用通过连杆www.linktoapp.com访问并且它将被写入快速JS。

现在,我已经开发了另一种快速JS应用程序,我想通过链接www.linktoapp.com/secondapp

我的问题是我可以在主应用程序中添加这条路线(/ sceondapp)来访问它,所以我可以像我说的那样访问它?

谢谢。

+0

你能提供写道:更多关于你想要做什么以及你的案例的信息。 – majidarif 2014-11-03 10:33:36

+0

Thanx @majidarif我编辑了这个问题并添加了一个例子。 – Sami 2014-11-03 10:53:34

回答

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"); 
}); 
+0

问题是两个应用程序分别开发,但现在我需要将其中一个添加到另一个。 – Sami 2014-11-03 11:17:35

+0

所以最新的问题运行在一个端口上的第一个应用程序,并在不同的端口上运行第二个应用程序,并使用绝对链接链接这些应用程序。但请记住,除非您的第二个应用程序用作代理,否则您不能在生产中使用此功能。因为两个应用程序无法听到同一个端口,即80 – manas 2014-11-03 11:34:02

+0

我可以像使用路由一样使用它吗? 即 'app2 = require('./app'); app1.use('/ secondapp',app2);' – Sami 2014-11-03 13:09:38

0

你需要的是建立一个快速的子应用程序。 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

相关问题