node.js - 没有从 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;
解决方案
推荐阅读
- java - 无法通过 JNA 将具有单字节数组字段的结构传递给本机代码
- python - 文件下载后的 Flask 刷新页面
- sql - 如何更改 SQL 查询中的时区?
- javascript - Javascript 逻辑未按预期流动
- android - 没有更新建议的复合构建依赖项
- c++ - C ++中未排序数组中缺少元素
- python - Python-3、Pandas datareader 和 Yahoo 错误 RemoteDataError:无法读取 URL
- python - xlrd 没有属性 sheet_by_name
- python - Selenium 找不到单选按钮
- c - 静态库代码对驻留在应用程序代码中的外部结构使用了错误的地址