节点+ Express动态路由

时间:2019-03-06 08:29:35

标签: node.js express software-design

我要创建一个多应用程序,即我的客户有自己的用户集。

这是学校应用。  IAM对所有学校都使用相同的数据库,以便于维护。

我的路线将是这样

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

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

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

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

所以我的每个端点都应采用以下形式  / API /:schoolcode /用户   并通过req.params.schoolcode获取学校代码

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

是否有其他选择。请提供更好的解决方案

1 个答案:

答案 0 :(得分:1)

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

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

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

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