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