Axios 拦截器使用 express req object
Axios interceptor use express req object
我有一条快速路线,我从前端发送 header,在这条路线中,我使用 axios 发出 GET 请求。我用 axios 创建了一个拦截器,但我希望能够从激活的路由中读取 req object 以便将 header 添加到 axios GET 调用中。
// Example Interceptor
axios.interceptors.request.use(
config => {
// How to get req.headers from the route here?
return config;
},
error => {
return Promise.reject(error);
}
);
// Exemple GET route
router.get('/get', async (req, res, next) => {
try {
const { data } = await axios.get('https://kjhf.fsadjhfewq.....');
} catch (error) {
console.log(error)
}
res.status(200).json({});
});
可以这样做吗?
所以我认为实现的方法是使用一个中间件来设置headers,并传递axios实例
// apiSetHeader.js middleware
exports.default = (req, res, next) => {
req.CustomAxios = axios.create({
headers: { 'HeaderForTheApi': req.headers.apiHeader'}
})
next()
}
然后在你的路线中使用它
// Exemple GET route
router.get('/get', apiSetHeaderMiddleware, async (req, res, next) => {
try {
const { data } = await req.CustomAxios.get('https://kjhf.fsadjhfewq.....');
} catch (error) {
console.log(error)
}
res.status(200).json({});
});
希望对您有所帮助!
我有一条快速路线,我从前端发送 header,在这条路线中,我使用 axios 发出 GET 请求。我用 axios 创建了一个拦截器,但我希望能够从激活的路由中读取 req object 以便将 header 添加到 axios GET 调用中。
// Example Interceptor
axios.interceptors.request.use(
config => {
// How to get req.headers from the route here?
return config;
},
error => {
return Promise.reject(error);
}
);
// Exemple GET route
router.get('/get', async (req, res, next) => {
try {
const { data } = await axios.get('https://kjhf.fsadjhfewq.....');
} catch (error) {
console.log(error)
}
res.status(200).json({});
});
可以这样做吗?
所以我认为实现的方法是使用一个中间件来设置headers,并传递axios实例
// apiSetHeader.js middleware
exports.default = (req, res, next) => {
req.CustomAxios = axios.create({
headers: { 'HeaderForTheApi': req.headers.apiHeader'}
})
next()
}
然后在你的路线中使用它
// Exemple GET route
router.get('/get', apiSetHeaderMiddleware, async (req, res, next) => {
try {
const { data } = await req.CustomAxios.get('https://kjhf.fsadjhfewq.....');
} catch (error) {
console.log(error)
}
res.status(200).json({});
});
希望对您有所帮助!