2016-10-18 1 views
1

Возможно ли в приложении express/node иметь разные маршруты, настроенные на разные порты? Пример: «/ Foo/бар» доступен только локальный хост: 3000 «/ бара/Foo», доступный только локальный хост: 3002использовать разные маршруты для разных портов в экспресс-приложении

ответ

1

Да, но вы просто создать два сервер, каждые на своем собственном порту, а затем создать экспресс app объект для каждого сервера и зарегистрировать маршруты для нужного сервера в соответствующем объекте приложения. Данный сервер прослушивает только один порт.

const express = require('express'); 

// first server 
const app3000 = express(); 
app3000.get('/bar/foo', function(req, res) { 
    // code here for port 3000 handler 
}); 
app3000.listen(3000); 

// second server 
const app3002 = express(); 
app3002.get('/foo/bar', function(req, res) { 
    // code here for port 3002 handler 
}); 
app3002.listen(3002); 
+0

Я пробовал этот подход. Проблема с этим подходом заключается в том, что есть два отдельных приложения, и я не могу совместно использовать состояния, хранящиеся в памяти, если я не использую какую-то постоянство, доступную для обоих приложений. – manish

+0

@manish - Это неправда. Вы можете легко обмениваться памятью между этими двумя экземплярами сервера, потому что они работают в одном движке Javascript. Оба они имеют доступ к тем же переменным (как я определил их в одном модуле). Вы можете легко обмениваться между собой уровнем модуля или глобальным состоянием, просто используя переменные Javascript в этом модуле. – jfriend00

+0

Спасибо @ jfriend00. То, что я делал, выполняло два разных приложения в отдельном модуле. Таким образом, память не была разделена. – manish

Смежные вопросы