【问题标题】:Cant see data in my node js server from another computer in my network无法从我网络中的另一台计算机查看我的节点 js 服务器中的数据
【发布时间】:2021-04-01 20:18:47
【问题描述】:

我试图在我的本地网络上打开一个本地网站,我可以从我网络中的每个设备访问该网站。
我使用 React 作为前端,Nodejs 作为后端,mongodb 是我的数据库(本地)。
在运行一切的计算机上,我可以通过我在本地网络上的地址进入该站点并查看数据库中的数据,但是一旦我通过同一网络上的另一台计算机进入该站点,我就会看到该站点但不是来自数据库的数据。 我该如何解决这个问题?

我将此代码用于节点 js 服务器并在终端中运行 node server

const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
const ip = require('ip');
const app = express();
require('dotenv').config();

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;
mongoose.connect(uri);
const connection = mongoose.connection;
 connection.once('open', () => {
 console.log('MongoDB database connection established successfully');
 });

const exercisesRouter = require('./routes/exercises');
const usersRouter = require('./routes/users');

app.use('/exercises', exercisesRouter);
app.use('/users', usersRouter);

app.use(express.static('../build'));

const path = require('path');
app.get('*', (req, res) => {
 res.sendFile(path.resolve('../build/index.html'));
});

const PORT = process.env.PORT || 3000;
console.log('server started on port:', PORT, ip.address());
app.listen(PORT,"0.0.0.0");

【问题讨论】:

  • 能否请您告诉我您是如何启动 react 应用程序的,以及您如何从其他设备访问前端?
  • @Mu-Majid 基本上,一旦我运行服务器,它就会运行反应应用程序构建文件,正如您在代码中看到的那样。在另一台设备上,我通过在浏览器中输入运行服务器的计算机地址进入该站点

标签: node.js reactjs mongodb


【解决方案1】:

首先要指定反应主机。如果您使用的是create-react-app,只需运行 HOST=your_ip npm run start。

要获取此your_ip,请在 unix 系统上运行 ifconfig,您将在所连接的 LAN 上找到您的 PC 的 IP。

对于 nodejs 方面,您可能需要尝试类似

server.listen(80, 'current_local_ip');.

【讨论】:

  • 基本上对5000端口稍作改动就可以工作了。不做这个命令也可以让它工作:HOST=your_ip npm run start,但只运行服务器?
猜你喜欢
  • 2012-07-01
  • 2019-10-05
  • 1970-01-01
  • 2011-03-30
  • 2011-06-18
  • 2014-04-23
  • 2013-06-16
  • 2020-08-24
  • 1970-01-01
相关资源
最近更新 更多