我在使用 app.use 时遇到 ExpressJS 触发错误路由的问题
这是index.js 文件中的代码,我在其中组合了所有路由:
const app = express(),
Router = express.Router();
app.use("/api/vehicle", vehiclesRoutes(Router));
app.use("/api/static-costs", staticCostsRoutes(Router));
app.use("/api/company", companiesRoutes(Router));
app.use("/api/worker", workersRoutes(Router));
每个函数(vehiclesRoutes、staticCostsRoutes 等)的构造都是相同的。
例如车辆路线:
export default (router) => {
router.get("/:company_id", getVehiclesByCompany);
router.post("/:company_id", postVehicle);
router.put("/:company_id/:id", putVehicle);
router.delete("/:company_id/:id", deleteVehicle);
return router;
};
例如静态成本路由:
export default router => {
router.get("/:company_id", getStaticCostsByCompany);
router.post("/:company_id", postStaticCost);
router.put("/:company_id/:id", putStaticCost);
router.delete("/:company_id/:id", deleteStaticCost);
return router;
};
我正在通过 Express Router、固定路由和返回路由器。
当我试图打电话时PUT /api/static-cost/:company_id/:id,
它开火了PUT /api/vehicles/:company_id/:id.
当我交换这两件事时,我提到了一些有趣的事情:
app.use("/api/static-costs", staticCostsRoutes(Router));
app.use("/api/vehicle", vehiclesRoutes(Router));
当我试图打电话时,情况正好相反PUT /api/vehicle/:company_id/:id,它开火了PUT /api/static-costs/:company_id/:id.