【问题标题】:Node +Express dynamic routingNode +Express 动态路由
【发布时间】:2019-03-06 08:29:35
【问题描述】:

我正在创建一个多用途应用程序,即我的客户有自己的一组用户。

这是一个学校应用程序。 IAM 为所有学校使用相同的数据库,以便于维护。

我的路线会是这样的

/API/一些学校代码/用户

/API/一些其他学校代码/用户

/API/一些其他学校代码/用户

我的问题是,这里的学校代码是动态的或用户特定的。我需要使用它来过滤数据库中的数据。

所以我的每个端点应该是 /API/:学校代码/用户 并通过 req.params.schoolcode 获取学校代码

这里的问题是我需要在每个开始的路线中添加 :schoolcode。 或任何中间件方法

有没有其他方法。请提供更好的解决方案

【问题讨论】:

    标签: node.js express software-design


    【解决方案1】:

    您可以分段代码并在主节点文件中调用路由处理程序

    app.use('/api/:schoolcode([0-9]+)', schoolRouter)
    

    我添加了一些正则表达式,可以验证您的路径是否只是数字,但您可以根据需要进行更改。 你的 schoolRouter 可能是这样的:

     app.route('/users')
       .get((req, res) => {/** do something
     **/})
       .post((req, res) => { /* do something */})
    

    【讨论】:

    • IAM 希望创建一个配置文件,其中包含 numericid ->schoolcode 的映射。并从路由参数中找到学校代码,找到对应的学校代码(数字)也和数据库中的一样。这个方法如何
    • 如何在 School 外部文件中获取学校代码:即在 app.get() 中
    • 你会在你提到的请求中找到它:req.params.schoolcode
    • 好的..现在我明白了..你能看看上面的评论吗
    • 对不起,我不太明白你想做什么。如果我理解正确,您想使用 schooldcode(您将在 req.params 中获得)从数据库中检索信息?如果是这样,你可以调用你的数据库,我把我的 /** 做一些事情 **/ 评论。如果不知道您的数据库或配置,我无法为您提供更多帮助。
    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2022-01-07
    • 2016-07-23
    • 1970-01-01
    • 2018-04-23
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多