Как запустить сервер nodejs без порта?
Я занимаюсь выпуском своего приложения.
Я запустил фронт на домене (example.com) через nginx.
Специфика моего приложения заставляет меня запустить бэкенд на том же домене example.com. И отправлять запросы на example.com/api, example.com/auth и т.д. Сейчас мое приложение запускается на example.com:3333. В теории, я могу через nginx перенаправлять запросы на 3333, но не будет ли возникать конфликтов в работе клиента и сервера, если нет - как мне перенаправить запросы?
Дополнительно:
Ответы:
но не будет ли возникать конфликтов в работе клиента и сервера,
Не должно. Просто разруливай по путям - что к бэку должно идти, а что на статику.
А чтобы "без порта" надо запускать на 80 и 443 порте.
Но если на этой же машине nginx стоит, то будет конфликт.
Под запустил фронт вы имеете в виду React в режиме dev или что-то подобное? Если так, то вам стоит ввести константу, например, domain, в которой сейчас будет адрес поднятого сервера (сейчас на другом порту). Перед релизом приложения, вам нужно выполнить сборку, таким образом вы получите статичные файлы. Дальше вы меня domain на "/" и раздаёте эти файлы с сервера. Таким образом и ваш клиент и ваш сервер будут на одном домене. Если под клиентом вы имели в виду что-то иное, напишите это.
- Клиент - React приложение, собранное. В продакшен
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для запуска сервера Node.js без указания порта можно воспользоваться следующим способом:
1. Создайте файл с именем, например, `server.js` и добавьте следующий код:
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, World!'); }); server.listen();
2. Вместо метода `server.listen()` необходимо передать пустой объект `{}`. Это позволит серверу выбрать произвольный свободный порт:
server.listen({});
3. Теперь, когда сервер будет запущен, вы увидите сообщение "Server running at http://localhost:XXXX/", где `XXXX` - это порт, который был автоматически выбран.
Таким образом, сервер Node.js будет запущен без указания порта, и он будет использовать произвольный свободный порт. Этот способ удобен, если вам не важно, на каком порту будет работать сервер, и вы хотите, чтобы он выбирал его автоматически.