繁体   English   中英

无法在我的公共 ip 地址上运行 nodejs

[英]Could not run nodejs on my public ip address

大家好,我有一个基本的nodejs代码,比如

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const mongoose = require("mongoose");
var createError = require("http-errors");
require("dotenv").config();
const app = express();

//ROUTES//
const userRoutes = require("./routes/UserRoutes");

app.use(cors());
app.use(bodyParser.json());
app.use("/", (req, res, next) => res.send("hello"));
app.use("/api", userRoutes);

mongoose
  .connect(process.env.MONGOURL, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => console.log("connected and running"));

app.use((req, res, next) => {
  next(createError(404, "Not found"));
});
app.use((err, req, res, next) => {
  console.log("in error middleware");
  res.status(err.status || 500);
  res.send({
    status: err.status || 500,
    message: err.message,
  });
});
app.listen(4000,() =>
  console.log(`listening on 4000`)
);

所以到目前为止我正在端口 = 4000 上运行,所以可以通过

http://localhost:4000

但我计划将此服务器用于我的反应本机应用程序,使用 expo 客户端应用程序,我通过它在我的手机上运行我的应用程序我看到我无法通过本地主机访问所以在客户端我试图通过它访问它

http://<my-public-ip>:4000

但它没有得到任何回应

http://127.0.0.1:4000/

但这仅适用于我的电脑,很明显,我如何通过运行我的应用程序的手机访问本地服务器?

您想从本地家庭网络或互联网访问它吗?

If it's from local network, juste use the local ip address of your pc (it probably starts with 192.168.XX.XX), you can find it with ipconfig on Windows CMD or ip addr on a Linux shell.

如果它来自 WAN(互联网),则需要在路由器的防火墙中配置端口转发,这意味着“将<my-public-ip>:4000转换为<local-pc-ip>:4000 (就像以前一样找到)” . (您可以通过搜索路由器的类型/品牌来找到 web 的信息)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM