通过ExpressJS应用在axios中设置动态标头

时间:2019-05-31 10:54:22

标签: javascript express axios

我有一个要求,我需要在每个axios请求中设置一个Request-Id头。该标头的值由另一个快速中间件动态生成。

现在我可以做到了:

axios.get(url, headers: {'Request-Id': req.requestId});

但是我想将这种抽象移到某个常见的地方,以便可以在任何地方重用。我想出了一个自定义的快速中间件:

app.use(function (req, res, next) {
  req.fetch = axios;
  req.fetch.defaults.headers.common['Request-Id'] = req.requestId;
  next();
})

现在,我可以在任何路由中使用req.fetch,而不必分别设置标题,但这是推荐的方法吗? 如果有人可以解释这种方法是否有任何陷阱或更好的解决方案,那将很有帮助。

1 个答案:

答案 0 :(得分:1)

这对我来说现在看起来不错。

您也可以使用一些配置文件来让服务器使用或不使用您刚刚编写的中间件:)

也许其他人可能会告诉我们他们的想法