Как запустить сервер nodejs без порта?

Ссылка скопирована
1 ответ

Я занимаюсь выпуском своего приложения.
Я запустил фронт на домене (example.com) через nginx.
Специфика моего приложения заставляет меня запустить бэкенд на том же домене example.com. И отправлять запросы на example.com/api, example.com/auth и т.д. Сейчас мое приложение запускается на example.com:3333. В теории, я могу через nginx перенаправлять запросы на 3333, но не будет ли возникать конфликтов в работе клиента и сервера, если нет - как мне перенаправить запросы?

Дополнительно:

Ответы:

но не будет ли возникать конфликтов в работе клиента и сервера,

Не должно. Просто разруливай по путям - что к бэку должно идти, а что на статику.

А чтобы "без порта" надо запускать на 80 и 443 порте.
Но если на этой же машине nginx стоит, то будет конфликт.

Под запустил фронт вы имеете в виду React в режиме dev или что-то подобное? Если так, то вам стоит ввести константу, например, domain, в которой сейчас будет адрес поднятого сервера (сейчас на другом порту). Перед релизом приложения, вам нужно выполнить сборку, таким образом вы получите статичные файлы. Дальше вы меня domain на "/" и раздаёте эти файлы с сервера. Таким образом и ваш клиент и ваш сервер будут на одном домене. Если под клиентом вы имели в виду что-то иное, напишите это.

  • Клиент - React приложение, собранное. В продакшен
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

Для запуска сервера 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();

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({});

server.listen({});

3. Теперь, когда сервер будет запущен, вы увидите сообщение "Server running at http://localhost:XXXX/", где `XXXX` - это порт, который был автоматически выбран.

Таким образом, сервер Node.js будет запущен без указания порта, и он будет использовать произвольный свободный порт. Этот способ удобен, если вам не важно, на каком порту будет работать сервер, и вы хотите, чтобы он выбирал его автоматически.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно