почему сервер express прослушивает порт, отличный от того, на котором находится мое приложение react

#javascript #node.js #express #port

#javascript #node.js #экспресс #порт

Вопрос:

Мое приложение react работает по умолчанию http://localhost:3000 / (что означает, что приложение работает на порту 3000, как я понял), однако, когда я хочу получить данные от клиента к серверу, мне приходится прослушивать другой порт. Вот код:

     const express = require("express");
    const server = express();
    
    const body_parser = require("body-parser");
    const port = 4000;
    
    
    server.listen(port, () => {
        console.log(`Server listening at ${port}`);
 

Когда сервер прослушивает порт 4000 или любой другой порт, кроме 3000, все работает нормально (я могу получать и отправлять данные), но мой код выдает ошибку всякий раз, когда я начинаю прослушивать 3000. Я не понимаю, как это работает, разве я не должен слушать 3000 для подключения к моему приложению react? или мне не хватает некоторых фундаментальных знаний?

Ответ №1:

Если вы запускаете каждое приложение отдельно, вам нужно запускать каждое приложение на другом порту. Вам нужно будет только запустить сервер и прослушать тот же порт, если вы обслуживаете свое интерфейсное приложение с сервера.

Комментарии:

1. Спасибо за ответ! да, я запускаю каждое приложение отдельно, и теперь я понимаю, что их нужно запускать на отдельных портах, но почему я должен указывать для прослушивания определенного порта? На самом деле я немного смущен тем, что выполняет прослушивание порта, и почему мне не нужно указывать это в моем интерфейсном коде.

2. @bearthum Прослушивание порта позволяет вам… получайте данные с этого порта. Вы должны указать порт, чтобы знать, какой порт прослушивать. Если вы не указываете его на клиенте, это означает, что существует значение по умолчанию, которое соответствует вашей конфигурации.