【问题标题】:Trouble hosting Express.js app on LAN network无法在 LAN 网络上托管 Express.js 应用程序
【发布时间】:2020-11-24 03:37:58
【问题描述】:

我一直在尝试将我的 windows labtop 中的 express.js 服务器托管到我的局域网上,以便路由器上的其他设备也可以访问该站点,这是我的麻烦:

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 地址来托管在我的局域网上,那就太好了。

当我在该地址上托管服务器时,它充当本地主机,并且当我在浏览器中访问 IP 地址时工作,但不适用于连接到路由器的其他设备。

【问题讨论】:

  • 尝试使用 ip 0.0.0.0 监听所有设备,同时检查您的 Windows 防火墙或路由器是否不会阻止到您机器的流量。我假设您可以绑定到端口 80,但是尝试将端口更改为大于 1024 的端口,例如 3000 并检查它是否有任何改变。
  • @Anastazy 我已将端口更改为 3000,监听 0.0.0.0 没有任何错误。我使用什么 IP 地址连接到我的 express 服务器?
  • 0.0.0.0 地址只是意味着您的服务器绑定并侦听所有可用接口,因此请使用路由器分配给该计算机的 IP 地址(通常 DHCP 服务器会自动分配 IP 地址)。如您所说,您可以使用 IPv4 部分中的ipconfig 命令检查 IP(如果您有多个网卡,请确保您正在查看正确的接口)。您还可以在路由器设置中检查分配给设备的 IP 地址(通常您可以通过在浏览器中输入 192.168.1.1 来登录路由器)。

标签: node.js express networking


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2011-05-10
      • 2019-01-10
      • 2021-06-22
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      相关资源
      最近更新 更多