我在 nextjs 应用程序中定义了一个
middleware.ts
文件。我可以在其中设置必要的内容,例如身份验证等。
我还想检查我的请求的结果。我似乎找不到一种方法来触发代码在请求后运行。理想情况下它同时具有请求和响应对象。
我需要根据传入的参数验证请求是否生成了有效的响应。如果没有,我需要抛出一个错误并回滚整个事务。
我不认为你可以使用 nextjs 中间件来实现这一点,但你可以使用像 axios 这样的 http 库来做到这一点。听起来您想设置类似“错误拦截器”的东西
创建axios实例
const apiClient = axios.create({
baseURL: 'https://your-api-url.com',
timeout: 5000,
});
apiClient.interceptors.request.use(
(config) => {
// set up your configs or modify the request
return config;
},
(error) => {
// Handle request errors
return Promise.reject(error);
}
);
添加响应拦截器
apiClient.interceptors.response.use(
(response) => {
// Validate response
if (!response.data.success || !response.data.data) {
// do something with the error like your rollback logic
throw new Error('Invalid response data');
}
return response;
},
(error) => {
console.error('Response Error:', error);
return Promise.reject(error);
}
);
希望这对您有用!