【问题标题】:GET http://localhost:5000/posts net::ERR_CONNECTION_REFUSEDGET http://localhost:5000/posts net::ERR_CONNECTION_REFUSED
【发布时间】:2021-01-01 19:42:34
【问题描述】:

我正在尝试使用 MERN 堆栈创建项目,但遇到了此错误。我已经添加了代理做 JSON 文件,但仍然没有运气。

错误:

GET http://localhost:5000/posts net::ERR_CONNECTION_REFUSED

我的行动:

export const getPosts = () => async (dispatch) => {
try {
    const {data} = await api.fetchPosts();

    dispatch({type: 'FETCH_ALL', payload: data});

} catch (error) {
    console.log(error.message);
}

// const action = {type: 'FETCH_ALL', payload: []}

// dispatch(action);
}

export const createPost = (post) => async (dispatch) => {
try {
    const {data} = await api.createPost(post);
    dispatch({type: 'CREATE', payload: data})
} catch (error) {
    console.log(error);        
}
}

我的路线/帖子:

const router = express.Router();

router.get('/', getPosts);
router.post('/', createPost);

export default router;

服务器控制器:

    export const getPosts = async (req, res) => {
        try {
            const postMessages = PostMessage.find();

            console.log(postMessages);

            res.status(200).json(postMessages);
        } catch (error) {
            res.status(404).json({message: error.message});
        }
    }

    export const createPost = async (req, res) => {
        const post = req.body;

        const newPost = new PostMessage(post);
        try {
            await newPost.save();

            res.status(201).json(newPost);

        } catch (error) {
            res.status(409).json({message: error.message});
        }
    }

服务器 index.js:

    const app = express();

    //MIDDLEWARE

    app.use(bodyParser.json({limit: "30mb", extended: true}));
    app.use(bodyParser.urlencoded({limit: "30mb", extended: true}));
    app.use(cors());

    app.use('/posts', postRoutes);

    
    const PORT = process.env.PORT || 5000;

    mongoose.connect(CONNECTION_URL, {useNewUrlParser:true, useUnifiedTopology: true}) 
        .then(()=> app.listen(PORT, () => console.log('Server running on port:', PORT)))
        .catch((error)=> console.log(error.message));

    mongoose.set('useFindAndModify', false);

客户端API索引:

    const url = 'http://localhost:5000/posts';

    export const fetchPosts = () => axios.get(url);
    export const createPost = (newPost) => axios.post(url, newPost)

client.json:

{
  "name": "osteoft",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:5000",
  "dependencies": {
    "@material-ui/core": "^4.11.2",
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "axios": "^0.21.1",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-file-base64": "^1.0.3",
    "react-redux": "^7.2.2",
    "react-scripts": "4.0.1",
    "redux": "^4.0.5",
    "redux-thunk": "^2.3.0",
    "web-vitals": "^0.2.4"
  },

我尝试配置连接时是否缺少某些内容?

【问题讨论】:

  • 您是否创建了一个使用您的app 对象并监听PORT 的服务器?你也可以分享那部分代码吗?
  • 就像我在服务器的 index.js 中一样。至少现在。但我想这现在应该可以工作了,因为我需要测试我的帖子是否进入数据库
  • 您能否在服务器 index.js 的末尾添加const http = require('http'); const server = http.createServer(app); server.listen(PORT);,然后再次尝试发送请求?
  • 它告诉我“require”函数没有定义:|
  • 我刚刚编辑了我的服务器 index.js。这里缺少具有 app.listen 的 mongoose 连接

标签: reactjs redux mern


【解决方案1】:

我遇到了同样的问题,经过大量搜索并再次观看教程后,我终于注意到在我的服务器上运行“$ npm start”时,我会收到一条消息说 mongodb 拒绝了连接,通常是因为您使用的 IP 地址未列入白名单。

转到 mongodb.com/cloud/atlas,然后到 mongodb 仪表板中的“网络访问”,并添加一个新的 IP 地址,只需一个按钮即可添加您的 IP 地址。

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题。如果您可以公开数据库(尽管访问更新需要凭据),您可以通过按“允许随处访问”快速解决此问题。否则,您可以添加新的 IP 地址或将多个 IP 地址范围列入白名单,如下所示:https://studio3t.com/knowledge-base/articles/mongodb-atlas-login-ip-whitelisting/

    【讨论】:

      【解决方案3】:

      我正在做同样的教程。记忆应用?

      你需要添加

      从“快递”导入快递;

      到控制器/帖子的顶部

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 1970-01-01
        • 1970-01-01
        • 2019-12-23
        • 2019-11-23
        • 2016-07-21
        • 1970-01-01
        • 1970-01-01
        • 2022-12-07
        相关资源
        最近更新 更多