Как запустить несколько приложений на Express без маршрутизации?
У меня есть 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())
1 ответ
Вы можете использовать Router API Express:
// 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;