【问题标题】:Express Server not responding on EC2Express 服务器在 EC2 上没有响应
【发布时间】:2021-06-18 14:00:26
【问题描述】:

我在 EC2 上托管了一个 Express 服务器。 http://xx.xxx.xxx.xxx:3000 的服务器可以从任何浏览器以及 Postman 访问。但是在从我的 React 前端向服务器发出请求时,我收到 404 错误。如何解决?我已经使用以下代码允许跨域请求到我的节点服务器。

const cors = require('cors')
app.use(cors())

在我的本地主机上运行时,同一台快速服务器对从 React 前端收到的请求响应非常好。

编辑:下面添加了完整的服务器代码。

const express = require('express')
const fs = require('fs')
const cors = require('cors')
const app = express()

app.use(cors())
app.use(express.urlencoded({ extended: false }))
app.use(express.json())

app.get('/', (req, res) => {
    var sendSomething = "error"
    res.send(sendSomething)
})
   
app.listen(3001, () => {
    console.log('Server runs on port 3001')
})

【问题讨论】:

    标签: node.js amazon-ec2


    【解决方案1】:

    确保您的代码具有如下的最小结构:

    const express = require('express')
    const cors = require('cors');
    const bodyParser = require('body-parser')
    const http = require('http');
    
    const app = express()
    app.use(cors());
    app.use(express.urlencoded({ extended: false }));
    app.use(express.json());
    
    app.get('/', (req, res) => {
      res.send("<html><div style='text-align:center;margin-top:20%'><h1>Welcome to My Page </h1></div></html>");
    });
    
    const httpServer = http.createServer(app);
    httpServer.listen(env.port, () => {
      console.log(`API is now live on ${env.port}`);
    });

    如果是,则转到 AWS 控制台,服务->vpc->安全->安全组-> 单击安全组 ID,并确保入站规则中的源为“0.0.0./0”。 (这意味着所有 ip 都可以访问。请确保稍后限制。)

    【讨论】:

    • 感谢 Rajesh404。已在主消息中添加了完整代码。与您建议的结构相同。但仍然是同样的问题。该网站可在浏览器和 Postman 中访问,但无法从另一个网站(我的反应前端)发出 GET 请求。入站规则设置为您提到的: HTTP TCP 80 0.0.0.0/0 HTTP TCP 80 ::/0 HTTPS TCP 80 0.0.0.0/0 HTTPS TCP 80 ::/0 托管在我的本地计算机上的同一台服务器,我可以从我的反应前端发出获取请求。
    • 如果可以从浏览器和邮递员访问,那么您的服务器实际上正在运行。问题应该出在你的前端。
    • 但是在我的桌面上托管时与 localhost:xxxx 完全相同的 express 后端,它可以从我的同一个 React 前端访问。因此,我假设前端正常运行。前端是否也需要 CORS 设置或等效设置?
    猜你喜欢
    • 2014-03-29
    • 2020-12-10
    • 2020-11-21
    • 2013-04-22
    • 2021-10-04
    • 1970-01-01
    • 2018-07-30
    • 2023-04-10
    • 2017-06-09
    相关资源
    最近更新 更多