0

我有 2 个应用程序希望添加到我的个人资料网站,这本身就是一个快速应用程序。

我想在/projects我们可以拥有的路线localhost/projects/app1下运行这些应用程序localhost/projects/app2

我希望每个应用程序的所有子路由都在各自的路由上进行处理,例如路由/projects/app1/signup在成功后重定向 POST到仪表板,但现在我需要确保这不会重定向到localhost/dashboard而是localhost/projects/app1/dashboard

我知道路由,我也在 App1 上使用它,即

var rank = require('./routes/ranks');
...
var taxiRanks = new rank();
...
app.get('/',taxiRanks.findNearbyRanks);
app.get('/whereami',taxiRanks.getCurrentLocation )
app.post('/location',taxiRanks.receiveLocation) 
app.post('/signup',taxiRanks.newUser)

我想实现这样的目标

...
var main_app = express()
var app1 = require('./path/to/app1')
var app2 = require('./path/to/app2')
...
main_app.get('/projects/app1' , app1())
main_app.get('/projects/app2' , app2())
4

1 回答 1

4

您可以使用 Express 的 Router API:

// app1.js
const app1Routes = express.Router();

app1Routes
  .use('/user', userRoutes)
  .use('/activity', activityRoutes)

module.exports = app1Routes;


// app2.js
const app2Routes = express.Router();

app2Routes
  .use('/food', foodRoutes)
  .use('/candy', candyRoutes)

module.exports = app2Routes;

// app.js
const app1Routes = require('./app1.js');
const app2Routes = require('./app2.js');

app.use('/app1', app1Routes);
app.use('/app2', app2Routes);

例如,在 userRoutes 中,您可以这样声明您的路线:

const routes = express.Router();

routes.get('/:id', (req, res) => res.status(200).send({ id : 1, firstName : 'junk' }));

routes.post('/', (req, res) => res.status(201).send({ msg : 'User created' }));

module.exports = routes;
于 2017-02-14T16:01:34.303 回答