#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:
Проверьте свои правила брандмауэра. У меня тоже есть эта проблема, и я отключаю брандмауэр, чтобы проверить его работу.