请求后运行中间件

问题描述 投票:0回答:1

我在 nextjs 应用程序中定义了一个

middleware.ts
文件。我可以在其中设置必要的内容,例如身份验证等。

我还想检查我的请求的结果。我似乎找不到一种方法来触发代码在请求后运行。理想情况下它同时具有请求和响应对象。

我需要根据传入的参数验证请求是否生成了有效的响应。如果没有,我需要抛出一个错误并回滚整个事务。

next.js nextjs-middleware
1个回答
0
投票

我不认为你可以使用 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);
  }
);

希望这对您有用!

© www.soinside.com 2019 - 2024. All rights reserved.