#javascript #typescript #axios #nestjs
#javascript #typescript #axios #nestjs
Вопрос:
У меня есть контроллер
Post : /post
его можно вызывать в любое
время каждый раз, когда он вызывается, я должен добавлять идентификатор запроса и авторизацию в заголовок.
для авторизации легко добавить, потому что он должен быть во всех запросах, поступающих с этого контроллера, поэтому я использовал перехватчик axios
axios.defaults.headers.common[
'Authorization'
] = `Bearer ${token}`;
axios.defaults.headers.common['Content-Type'] = `application/json`;
но как я могу добавить заголовок для каждого потока, для каждого вызова контроллера, чтобы при каждом вызове контроллера заголовок имел «req-id: uuid ()». для каждого запроса, который отправляется во внешний api.
но когда во время предыдущего вызова происходит другой вызов, мне нужно, конечно, создать новый идентификатор запроса
на данный момент я создал его вручную в контроллере:
async post(){
reqId = "uuid"
await service.start(reqId)
}
in each function i added manually the header to axios
const headers = {
'req-id': reqId
}
затем он будет передан для всех функций в качестве параметра . я не хочу использовать его как параметр функции и не хочу дублировать код
как я могу сделать это динамически, не передавая эти данные для всех функций?
использование перехватчика в axios для всех запросов, которые мне нужны для каждого вызова контроллера, спасибо
Комментарии:
1. проверьте перехватчики axios doc
2. перехватчик @Amintagihani в axios повлияет на все запросы, мне это нужно для каждого потока, что произойдет, если я получу другой запрос, а затем первый запрос выполнит второй вызов внешнего api