Node js交互。 React和Node之间的连接Issue"/>
与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中的所有类似解决方案,但是由于我的缺席
知识,我终于请你们帮我解决这个问题。
这里有一些参考可以诊断我的问题。
- AWS网络安全设置
- 反应码
使用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', } })); }
- 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;
- 该项目的简化架构
我正在用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
发布评论