Проблемы с хостингом Express.js приложение в локальной сети

#node.js #express #networking

#node.js #экспресс #сеть

Вопрос:

Я пытался разместить express.js сервер с моего лабораторного стола Windows в мою локальную сеть, чтобы другие устройства на маршрутизаторе также могли посещать сайт, вот мои проблемы:

 let express = require("express")
let app = express()

app.get("/", (req, res) => {
  res.send("Hello")
})

app.listen(80, "the ip I got")
 

Я знаю, что весь этот код правильный, но ip, который я ввожу в listen (), как я получаю свой ip, я собираюсь cmd.exe и вводя в ipconfig, затем я использую адрес, указанный в разделе «IPv4-адрес». Если бы кто-нибудь мог помочь мне получить правильный IP-адрес для размещения в моей локальной сети, это было бы здорово.

Когда я размещаю сервер по этому адресу, он действует как localhost и работает, когда я посещаю IP-адрес в своем браузере, но не для других устройств, подключенных к моему маршрутизатору.

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

1. Попробуйте прослушивать на всех устройствах, используя ip 0.0.0.0 , также проверьте, не блокирует ли ваш брандмауэр Windows или маршрутизатор трафик на ваш компьютер. Я предполагаю, что вы можете привязаться к порту 80, однако попробуйте изменить порт на что-то большее, чем 1024, например 3000, и проверьте, не меняет ли это что-нибудь.

2. @Anastazy я изменил порт на 3000, прослушивая 0.0.0.0 без каких-либо ошибок. Какой IP-адрес я использую для подключения к моему экспресс-серверу?

3. 0.0.0.0 адрес просто означает, что ваш сервер связывается и прослушивает все доступные интерфейсы, поэтому используйте IP-адрес, назначенный этому компьютеру маршрутизатором (обычно DHCP-сервер назначает IP-адреса автоматически). Как вы сказали, вы можете проверить IP с ipconfig помощью команды в разделе IPv4 (убедитесь, что вы смотрите на правильный интерфейс, если у вас более одной сетевой карты). Вы также можете проверить IP-адреса, назначенные устройствам в настройках вашего маршрутизатора (обычно вы можете войти в свой маршрутизатор, набрав 192.168.1.1 в браузере).

Ответ №1:

  • используйте этот код :
     let port = 3000
    app.listen(port, () => {
      console.log("Iam ready at port : "   port)
    }) 
     
  • вместо : app.listen(80, "the ip I got")

Ответ №2:

  • Сначала назначьте статический IP-адрес для вашего ноутбука.
  • Затем измените код, как показано ниже

 let express = require("express")
let app = express()

app.get("/", (req, res) => {
  res.send("Hello")
})

app.listen(80,()=>{
    console.log("Server Started")
})
 

— Тогда попробуйте HTTP://localhost в вашем браузере. оно должно работать, после этого попробуйте получить доступ с помощью других устройств, используя ваш статический IP. если не работает, проверьте настройки брандмауэра и разрешите порт 80

Ответ №3:

Проверьте свои правила брандмауэра. У меня тоже есть эта проблема, и я отключаю брандмауэр, чтобы проверить его работу.