“反应代理错误:无法将请求/ api /从localhost:3000代理到http:// localhost:5000(ECONNREFUSED)'?错误。

时间:2020-06-06 05:40:44

标签: node.js reactjs express proxy http-proxy-middleware

我正在尝试将我的React前端连接到后端,我尝试了一切,但仍然无法正常工作。我添加了"proxy" : "localhost:5000" 也没有运气我尝试过

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
    app.use(
        '/api',
        createProxyMiddleware({
            target: 'http://localhost:5000',
            changeOrigin: true,
        })
    );
};

也没有运气。有没有人找到解决问题的办法。我到处都是stackoverflow

更新:索引文件

// Imports 
const express = require('express')
const app = express();
const cors = require('cors')
const mongoose = require('mongoose');
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const config = require('./config/key')
const routes = require('./routes/api')
require('dotenv').config()
// -----Connect to the database
mongoose.connect(config.mongoURI,
    {useNewUrlParser: true,useUnifiedTopology:true,
    createIndexes : true}).then(()=>{
    console.log("Database connected")
}).catch((error)=>{
    console.log(error)
})

// ----setting up middleware 
const corsOptions = {
    origin:['http://localhost:3000'],
    credentials: true,
    optionsSuccessStatus: 200
}
app.use(cors(corsOptions))
app.use(bodyParser.urlencoded({extended : true}))
app.use(bodyParser.json())
app.use(cookieParser())
app.use('/api', routes);


// ---- Setting up server to listen on port 5000
app.listen(5000,()=>{
    console.log("App is running on 5000")
})

2 个答案:

答案 0 :(得分:0)

将您的代码更新为此

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
 
  app.use(
    createProxyMiddleware("/api/*", { target: "http://localhost:5000/" })
  );
};

答案 1 :(得分:0)

对我来说,问题是港口。更改为3002之后又重新设置为5432。但是不知道为什么,因为如果端口已经被使用,那么节点应该抛出错误。