【问题标题】:How do I run multiple Apps on Express without routing?如何在没有路由的情况下在 Express 上运行多个应用程序?
【发布时间】:2017-02-14 15:54:32
【问题描述】:

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

我想在/projects 路由下运行这些应用,这样我们就可以拥有localhost/projects/app1localhost/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())

【问题讨论】:

    标签: node.js express node-http-proxy http-proxy-middleware node-https


    【解决方案1】:

    你可以使用 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;
    

    【讨论】:

    • userRoutes、activityRoutes 或 foodRoutes 中会包含什么?
    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多