Javascript express js,与其他计算机的端点的连接被拒绝

Javascript express js,与其他计算机的端点的连接被拒绝,javascript,node.js,express,axios,jwt,Javascript,Node.js,Express,Axios,Jwt,我有一个express服务器设置,并对前端作出反应。express服务器在端口5000上运行,并在3000上响应。我也在使用JWT代币 如果我从计算机上登录到应用程序,它在所有设备上都可以运行。我可以访问api端点并获取数据 如果我使用本地IP从同一网络上的另一台计算机登录。我可以到达react前端,我也可以登录。但是,如果我尝试访问在localhost:5000上运行的任何api端点,我会得到错误连接拒绝。在设置中似乎一切正常,我不知道问题出在哪里。这可能是Windows的防火墙阻塞吗?还是仅

我有一个express服务器设置,并对前端作出反应。express服务器在端口5000上运行,并在3000上响应。我也在使用JWT代币

如果我从计算机上登录到应用程序,它在所有设备上都可以运行。我可以访问api端点并获取数据

如果我使用本地IP从同一网络上的另一台计算机登录。我可以到达react前端,我也可以登录。但是,如果我尝试访问在localhost:5000上运行的任何api端点,我会得到错误连接拒绝。在设置中似乎一切正常,我不知道问题出在哪里。这可能是Windows的防火墙阻塞吗?还是仅仅通过路由器

注意,我还尝试了NGROK,它的行为方式也一样。我尝试了Heroku,更糟糕的是,我甚至无法登录,似乎输入字段是必需的,即使我在其中键入了一些内容,这就像每当我使用Heroku时,它都会向后端发送一个空对象

Express Server.js

const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const passport = require("passport");
const cors = require('cors')
const path = require('path')

const users = require("./routes/api/users");
const tickets = require("./routes/api/tickets");
const alerts = require("./routes/api/alerts");
const avaya = require("./routes/api/avaya");
const exercises = require("./routes/api/exercises");

const app = express();

// CORS Middleware

app.use(cors())
// Bodyparser middleware
app.use(
  bodyParser.urlencoded({
    extended: false
  })
);
app.use(bodyParser.json());



// DB Config
const db = require("./config/keys").mongoURI;

// Connect to MongoDB
mongoose
  .connect(
    db,
    { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true }
  )
  .then(() => console.log("MongoDB successfully connected"))
  .catch(err => console.log(err));

// Passport middleware
app.use(passport.initialize());

// Passport config
require("./config/passport")(passport);

// Routes
app.use("/api/users", users);
app.use('/api/tickets', tickets);
app.use('/api/alerts', alerts);
app.use('/api/avaya', avaya);
app.use('/api/exercises', exercises);


// Serve static assets if in production
// if (process.env.NODE_ENV === 'production') {
//     // Set static folder
//     app.use(express.static('client/build'));

//     app.get('*', (req, res) => {
//       res.sendFile(path.join(__dirname, 'client', 'build', 'index.html'));
//     });
//   }

const port = process.env.PORT || 5000;

app.listen(port, '0.0.0.0', () => console.log(`Server up and running on port ${port} !`));

确保您的客户端axios请求以您的IPv4地址和服务器端口为目标,同时确保您可以使用邮递员或任何类似工具访问您的IPv4地址:5000

确保您的客户端axios请求以您的IPv4地址和服务器端口为目标,并确保您可以使用邮递员访问您的IPv4地址:5000或者类似的东西

你是说你的react应用程序实际请求
http://localhost:5000
?它需要向
http://servername:5000
相反,其中
servername
是您服务器的主机名或IP地址您是说您的react应用程序实际请求
http://localhost:5000
?它需要向
http://servername:5000
相反,其中
servername
是您服务器的主机名或IP地址。当应用程序在Heroku上时,情况如何?它不再以我的IP为目标,离开localhost有意义吗?不?你不应该像离开localhost一样离开客户端网页IP。因为当你上传你的文件时,当其他人进入你的网站时,他会得到本地主机ip的分数,他对本地主机一无所知。客户端ip必须指向ServerExpress是否需要与Heroku同时运行?也许我不明白Heroku是怎么工作的。我认为它正在运行所有这些,node express在他们的服务器中做出反应。但你是说我需要把我的IPv4地址放在那里?我说你的客户端应用程序需要以你的服务器ip为目标。如果您正在运行服务器localhost,则以您的IPv4地址为目标如果您在公共服务器中运行IPv4地址,则以公共服务器为目标IP当应用程序在Heroku上时,情况如何?它不再以我的IP为目标,离开localhost有意义吗?不?你不应该像离开localhost一样离开客户端网页IP。因为当你上传你的文件时,当其他人进入你的网站时,他会得到本地主机ip的分数,他对本地主机一无所知。客户端ip必须指向ServerExpress是否需要与Heroku同时运行?也许我不明白Heroku是怎么工作的。我认为它正在运行所有这些,node express在他们的服务器中做出反应。但你是说我需要把我的IPv4地址放在那里?我说你的客户端应用程序需要以你的服务器ip为目标。如果您正在运行服务器localhost,则以IPv4地址为目标如果您正在公共服务器中运行IPv4地址,则以公共服务器ip为目标