我已经创建了一个功能良好的web应用程序,它在本地主机上运行得很好。现在我希望这个应用程序可以通过本地网络中的任何一台计算机访问。我有Server.js服务于我的ReactJS应用程序(这个功能很好,其他计算机可以访问它)
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(9000);
这个应用程序对服务(index.js)进行API调用,该服务将数据存储到MongoDB。这是index.js。
const express = require('express')
const bodyParser = require('body-parser')
var cors = require('cors')
const rakeRouter = require('./router/rake_analysis_router')
const mongoose = require('mongoose')
const app = express()
const apiPort = 5000
app.use(bodyParser.urlencoded({ extended: false }))
app.use(cors())
app.use(bodyParser.json())
mongoose.connect('mongodb://127.0.0.1:27017/rake_analysis_db', { useNewUrlParser: true })
const db = mongoose.connection
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log('connected!');
});
app.use('/api', rakeRouter)
app.listen(apiPort, () => console.log(`Server running on port ${apiPort}`))
这是它失败的部分。我不知道这里出了什么问题。是因为mongoDB服务器托管在localhost上,还是这个web服务只在localhost上运行。。?如果有人能对这个问题及其可能的解决方案给出一个解释,那就太好了。
如果需要,我很乐意补充更多信息。
当我们在评论中谈到这个问题时,我们发现API的地址是错误的。
更正:
api = axios.create({ baseURL: '0.0.0.0:5000/api', })
baseUrl更改为其LAN ip地址:
api = axios.create({ baseURL: '192.168...:5000/api', })