Nodejs表达:如何使用不同路由逻辑所需的通用函数

时间:2018-06-16 11:45:13

标签: node.js express routes

如何添加可在nodejs中使用express构建的不同路由使用的常用方法/函数?

我创建了一个当前正在提供3个API的nodejs服务器。例如:

/cars
/cars/:id
/cars/:id/sellers

所有这3个API都从另一个外部API检索数据。所以,我已经有一些在所有这些路线中都相似的代码。例如,将GET请求发送到外部API端点但具有不同的参数。

对于上面列表中的最后一个API,我想对其进行增强,以便它将采用可选参数(lastname,firstname)。我可以有另一个这样的API端点:

/cars/:id/sellers/:lastname&:firstname

但在这种情况下,我和列表中第3个API的逻辑几乎相同。

我想创建一些我可以从任何具有不同参数的API路由调用的util函数。我不太确定这样做或从哪里开始。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

app.use((req, res, next) => {
  //req.someParam
  //your logic
  next();
});

您可以使用这样的中间件,确保在路由定义后添加它,它将作为路由中的通用中间件

 router.post('/cars', (req, res, next) => {
    // if() some condition
    req.someParam = "param";
    next();
 });