admin管理员组

文章数量:814956

与AWS中的Node js交互。 React和Node之间的连接Issue

我正在做一个以React JS为前端,Node&Express为后端的项目。

我正在测试本地开发环境中的React和Node与真实服务器之间的连接。

我正在使用AWS EC2作为服务器。

问题是

1)本地前端(localhost:3000)本地后端(localhost:3001)(完全有效)

2)本地前端(localhost:3000) AWS Back(13.209.70.185:3001)(也可以)

3)AWS Front(13.209.70.185:80) AWS Back(13.209.70.185:3001)它不起作用!]]]

我可以在浏览器控制台中看到这样的错误消息。

'SyntaxError:意外令牌

我检查了这3种情况,但找不到该问题的解决方案。

我尝试了Stack Overflow和dev Communities中的所有类似解决方案,但是由于我的缺席

知识,我终于请你们帮我解决这个问题。

这里有一些参考可以诊断我的问题。

  1. AWS网络安全设置
  1. 反应码
  2. 使用http-proxy-middleware,我正在将请求发送到服务器(13.209.70.185:3001)

但是如果请求来自'localhost:3000'(这是本地响应),我将发送至'localhost:3001'。 (本地节点服务器)

/* setupProxy.js*/
const proxy = require("http-proxy-middleware");

module.exports = function (app) {

    app.use(proxy("/api", {
        target: "http://13.209.70.185:3001", 
        changeOrigin:true,
        ws: true,
        router: {
            'localhost:3000/api': 'http://localhost:3001',
        }
    }));

}
  1. NodeJS代码
/// app.js ///
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var cors = require('cors');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();

// view engine setup
app.use(cors());
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
//app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/api', (req, res) => res.json({username: 'Daniel'}));


// catch 404 and forward to error handler
// app.use(function(req, res, next) {
//   next(createError(404));
// });

// error handler
// app.use(function(err, req, res, next) {
//   // set locals, only providing error in development
//   res.locals.message = err.message;
//   res.locals.error = req.app.get('env') === 'development' ? err : {};

//   // render the error page
//   res.status(err.status || 500);
//   res.render('error');
// });

function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}

var port = normalizePort(process.env.PORT || '3001');
app.set('port', port);


app.listen(port, "0.0.0.0");

module.exports = app;
  1. 该项目的简化架构

我正在用React JS作为前端,而Node&Express作为后端来做一个项目。我正在测试本地开发环境中的React和Node与真实服务器之间的连接。我正在使用AWS EC2作为...

回答如下:

尝试这个花花公子。在setupProxy.js中将localhost:3000替换为0.0.0.0:80,将localhost:3001替换为0.0.0.0:3001

本文标签: 与AWS中的Node js交互 React和Node之间的连接Issue