代码之家  ›  专栏  ›  技术社区  ›  Matheus Felipe

Node Express中的通用路由前缀+特定路由

  •  0
  • Matheus Felipe  · 技术社区  · 4 年前

    我有一个系统,在指定要访问的数据之前,您需要提供您访问的公司,以检查授权。

    例如,要获取产品、材料和用户:

    GET公司/123123/产品

    GET公司/123123/材料

    GET公司/123123/用户

    在节点JS中创建快速路由时,我在所有路由声明中都使用前缀“company/:id”:

    app.get(“ /公司/:id /product”,callbackProduct);

    app.get(“ /公司/:id /material”,callbackMaterial);

    app.get(“ /公司/:id /user”,callbackUser);

    问题是,有没有办法概括路线中的“公司”部分,这样我就不需要在所有路线中重写它了?

    例如:

    应用程序。 某物 (“/company/id:/*”,genericCallback);

    app.get(“/product”,callbackProduct);

    app.get(“/material”,callbackMaterial);

    app.get(“/user”,callbackUser);

    0 回复  |  直到 4 年前
        1
  •  1
  •   Palladium02    4 年前

    你能做的就是用快递。路由器。
    在 company.routes.js 你会写这样的东西。

    const express = require("express");
    const CompanyRouter = express.Router();
    
    CompanyRouter.get("/:id/product", callbackProduct);
    CompanyRouter.get("/:id/material", callbackMaterial);
    CompanyRouter.get("/:id/user", callbackUser);
    
    module.exports = CompanyRouter;
    

    在你的 server.js 文件中,您将执行以下操作。

    const express = require("express");
    const CompanyRouter = require("./path/to/CompanyRouter.js")
    
    const app = express();
    app.use("/company", CompanyRouter);
    app.listen(3000);
    
    推荐文章