当前位置: 首页 > 知识库问答 >
问题:

我收到一个错误GET http://localhost:3000/api/products 404(找不到)

史默
2023-03-14

在StackOverflow中有很多关于这个错误的问题我都看到了没有一个对我有效。我正在使用react和redux来获取一些产品。我的后端服务器节点运行在端口5000上,每当我尝试获取数据时,我都使用并发来同时启动两台服务器,它使用端口3000,我的前端正在运行。请谁来帮我解决这个问题

{
  "name": "proshop",
  "version": "1.0.0",
  "description": "MERN application named proshop",
  "main": "server.js",
  "type": "module",
  "scripts": {
    "start": "node backend/server",
    "server": "nodemon backend/server",
    "client": "npm start --prefix frontend",
    "dev": "concurrently \"npm run server\" \"npm run client\"",
    "data:import": "node backend/seeder",
    "data:destroy": "node backend/seeder -d"
  },
  "keywords": [
    "NodeJS",
    "ExpressJs",
    "React",
    "Redux",
    "MongoDb"
  ],
  "author": "Narayan Maity",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "colors": "^1.4.0",
    "concurrently": "^5.3.0",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "express-async-handler": "^1.1.4",
    "mongoose": "^5.10.9"
  },
  "devDependencies": {
    "nodemon": "^2.0.6"
  }
}
import axios from 'axios';
import {
  PRODUCT_LIST_FAIL,
  PRODUCT_LIST_REQUEST,
  PRODUCT_LIST_SUCCESS,
} from '../constants/productConstants';

export const listProducts = () => async (dispatch) => {
  try {
    dispatch({ type: PRODUCT_LIST_REQUEST });

    const { data } = await axios.get('http://localhost:5000/api/products');

    dispatch({ type: PRODUCT_LIST_SUCCESS, payload: data });
  } catch (error) {
    dispatch({
      type: PRODUCT_LIST_FAIL,
      payload:
        error.response && error.response.data.message
          ? error.response.data.message
          : error.message,
    });
  }
};

共有1个答案

荆煌
2023-03-14

如果您在客户端反应项目文件夹中添加“代理”:“http://localhost:5000”,则会更容易实现焦点,如下所示:-

{
  "name": "projectname",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
  ...}
  "proxy": "http://localhost:5000"
}

那你就可以做:-

await axios.get('/api/products') // straight away use whatever path you've specified
 类似资料:
  • 所以我已经创建了一个注册身份验证的后端,在邮递员工作良好,我正在让用户到mondoDb以及,我们但是当我尝试创建实际的身份验证在localhost:3000/前端。在控制台它给我错误。如果有人能帮助我,这种错误会出现在哪里。 控制器 路线 注册表

  • 我正在使用http代理中间件将表单数据从React前端发送到Express server, 但是似乎不起作用 它应该代理 而是抛出一个错误: 邮递http://localhost:3000/api/sendMail404(未找到)。 前端代码: 设置代理。js: 服务器js:

  • 我怎么解决这个问题? http://localhost:3000/favicon.ico404(未找到) 服务器有此错误消息: 找不到404错误:在D:\nodetour\app中找不到。第二层的js:82:13。句柄[作为句柄\u请求](D:\nodetour\node\u modules\express\lib\router\layer.js:95:5)位于trim\u前缀(D:\nodeto

  • 我有一个关于react和nodejs的项目。现在,我在localhost:4000(我的服务器)中对用户进行身份验证,然后重定向到localhost:3000/* 但是重新运行这个错误 访问位于“”的XMLHttpRequesthttp://localhost:3000/login“(已从中重定向”http://localhost:4000/login“)起源”http://localhost:3

  • system.config.js: 当我在“app.module.ts”的imports列表中添加时,就会出现错误。

  • 使用Spring Boot(后端)和React(前端)开发时,我有一个奇怪的行为。React和Spring boot都在本地主机8080上运行。 当我从React to Spring Boot向localhost:8080发送POST请求时,我在Spring Boot中遇到了以下错误: 当我从localhost:3000(React development build)向localhost:808