Реагировать на внешний интерфейс, подключенный к node.js бэкэнду с открытым только 1 портом - PullRequest
0 голосов
/ 17 января 2020

У меня довольно большая проблема на работе, и мне нужна помощь. В основном у меня есть реагирующий интерфейс и node.js сервер для подключения к базе данных. Проблема в том, что компания, для которой я это создаю, откроет только 1 порт (443) для веб-страницы. И так как реакция генерируется на стороне клиента, я не могу использовать локальный URL для вызова бэкэнда для получения информации из базы данных. Они сказали, что могут открыть другой порт, если мы сделаем его HTTPS. Поэтому я попытался использовать express и https с самостоятельно назначенным ssl-сертификатом, который работал на моей стороне. На стороне клиента http-вызов веб-страницы не достигает сервера express.

Я также начал собирать его с помощью веб-пакета и express, поэтому сервер будет обрабатывать код реакции. Это должно сработать, но я подозреваю, что проблема с веб-пакетом (в прошлом у него не было хорошего опыта) .... В любом случае, есть ли что-то, о чем может подумать кто-то из yall, что позволит моему клиенту с подключенным приложением реагировать на соединение? база данных? Как другие компании справляются с этим? На самом деле любая помощь будет отличной. Я был в таком большом стрессе от этого.

Если вы считаете, что у вас есть какая-либо информация, которая может помочь мне указать верное направление, я был бы очень признателен за это!

1 Ответ

0 голосов
/ 17 января 2020

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

Другими словами, вам нужно, чтобы ваш код реакции имел доступ к API на вашем сервере (конечная точка https на порту 443) для получения данных. Ваше решение с Express должно работать. Я предполагаю, что у вас есть Node-сервер, прослушивающий порт 443, и что вы используете Express в качестве серверной части платформы. Именно этот код на стороне сервера должен обеспечивать доступ к базе данных и предоставлять данные для запросов https, сделанных вашим кодом React на стороне клиента. Вашему браузеру может не понравиться ваш самозаверяющий сертификат, и вам, вероятно, придется сказать ему, чтобы он доверял этому сертификату.

ОБНОВЛЕНИЕ:

Если вы хотите заблокировать все порты на сервере, кроме порта 443, вы можете использовать брандмауэр для достижения этого и заставить порты выглядеть неактивными, за исключением запроса, поступающего от localhost, самого сервера. Если это не вариант, вы также можете подключиться к базе данных, используя путь сокета вместо порта TCP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...