找不到带有路由器的Node js post 404



你好,我有一个问题,当我开始添加服务器端时,我构建了一个项目我正在使用node-js-express我从数据库(mongoDB(创建fetch post以指定url我想添加用户现在它成功了,但我尝试重新配置文件并使用路由器,现在我得到404,当我尝试发布时,上传了一些代码

只需要知道坏请求在哪里我想获取的url是http://localhost:5000/shopping-购物车/用户/注册

Axios.post("http://localhost:5000/shopping-cart/user/sign-up", user).then((response) => {
console.log(response);
});

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const path = require("path")
const productRouter = require("./routes/product.route");
const userRouter = require("./routes/user.route");
const { setServerConfiguration } = require("./config");
setServerConfiguration(app);
mongoose.connect('mongodb://localhost/shopping-cart-data-base');
app.use("/shopping-cart", productRouter);
app.use("/user/sign-up", userRouter);

app.listen(5000);
const router = require('express').Router();
const errorsHandler = require('../utils/errorsHandler');
const UserModel = require('../models/User');
router.post("/user/sign-up", async (req, res) => {
let body = req.body;
console.log(body)
try{
await UserModel.create({
name: body.name,
username: body.username,
password: body.password,
shoppingHistory: [],
});
res.send(body);
}catch(e){
return errorsHandler(e, req, res);
}
});
module.exports = router;

您的路由器安装在/user/sign-up前缀上:

app.use("/user/sign-up", userRouter);

这意味着所有以/user/sign-up开头的请求都将传递给您的路由器。

您的路由器应该将相对路由到该前缀,因此要使其工作,请使用以下方法:

router.post('/', ...)

尝试此url

"http://localhost:5000/user/sign-up"

如果你想使用";http://localhost:5000/shopping-推车/用户/注册";比你需要定义这样的路线,例如:

router.post("shopping-cart/user/sign-up", async (req, res) => {
//Your code
})

404路由未找到

app.use("/shopping-cart", productRouter) => route1
app.use("/user/sign-up", userRouter); => route2

路线1其他路线2

urlhttp://localhost:5000/shopping-购物车请求路线1

urlhttp://localhost:5000/user/sign-上行请求路由2