首页 > 解决方案 > 没有从 react.js 调用 Express API

问题描述

大家好,每个人都面临着 API 没有从节点(express.js)调用的问题。

当我使用控制器文件调用它时,它返回带有 data=[] 空数组的状态 200,并且不在控制台“[]”中打印,但是当我在 product.js(API 文件)中调用相同的 API 时,它被调用时给出的响应为状态 200 和 data=hi 我已禁用app.disable("etag"); 在 app.js 中

从 react.js 调用 Api 到 Express.js API

export const getRandomProductAPI = () => Axios.get(`${url}/v1/product/getRandomProduct`);

我有 API 文件夹,我在其中接收来自 Product.js(API 文件)中 react.js 的请求。

const express = require("express");
const router = express.Router();
const multer = require("multer");
const productController = require("../controllers/ProductController");

const storage = multer.memoryStorage({
  destination: function (req, file, callBack) {
    callBack(null, "");
  },
});

const uploadProduct = multer({ storage }).single("productImage");
const updateProduct = multer({ storage }).single("newEditImage");

// router.get("/getRandomProduct", (req, res) => {
//   res.status(200).send("hi");
// });

router.post("/add", uploadProduct, productController.addProduct);
router.get("/:category", productController.getProduct);
router.delete("/:id/:imageName", productController.deleteProduct);
router.patch("/", updateProduct, productController.updateProduct);
router.get("/Id", productController.getLatestProductId);
router.get("/getRandomProduct", productController.getRandomProduct);

module.exports = router;

被调用的API是最后一个-> router.get("/getRandomProduct",roductController.getRandomProduct); 控制器代码 ProductController.js

const getRandomProduct = async (req, res) => {
  console.log("called");
  res.status(200).send("hi");
 };

module.exports = {
  addProduct,
  getProduct,
  deleteProduct,
  updateProduct,
  getLatestProductId,
  getRandomProduct,
};

App.js 代码

const express = require("express");
const morgan = require("morgan");
const helmet = require("helmet");
const cors = require("cors");
const path = require("path");

require("dotenv").config();

const middlewares = require("./middlewares");
const api = require("./api");

const app = express();

if (process.env.NODE_ENV === "production") {
  app.use(express.static(path.join(__dirname, "client/build")));
}

app.use(morgan("dev"));
app.use(helmet());
app.use(cors());
app.use(express.json());
// app.disable("etag");

app.get("/", (req, res) => {
  res.json({
    message: " Furnitures ",
  });
});

app.use("/v1", api);

app.use(middlewares.notFound);
app.use(middlewares.errorHandler);

module.exports = app;

标签: node.jsapiexpress

解决方案


推荐阅读