node.js - NuxtServerError 状态码为 500,但错误消息为 401 错误

标签 node.js caching nuxt.js http-error

在我正在开发的应用程序中,我们经常但不一致地在我们的开发服务器上遇到非常难看的 NuxtServerError。

此 NuxtServerError 的状态代码为 500,但错误消息显示这是一个 401 错误。

堆栈跟踪仅显示一个帧,这完全没有帮助(参见屏幕截图)。

清除本地存储、 session 存储和 Cookie 可以消除此错误,但它会在其他时间再次出现。

由于我不确定可能导致此问题的原因,因此我很难重现它,更不用说找到解决它的方法了。

我们已经在 axios 插件中定义了一个 onError 回调来捕获 401 错误,但是这里似乎没有捕获这个错误......也许是因为它发生了在加载插件之前?

再说一次,Nuxt 对于让我们找出原因真的、真的没有帮助!

export default ({ $axios, nuxtState, app }) => {
  let logoutPage;
  if (process.client) {
    $axios.setBaseURL(nuxtState.env.API_URL);
    logoutPage = `https://${nuxtState.env.AUTH0_DOMAIN}/v2/logout`;
  }
  $axios.onError((e) => {
    if ([401, 403].includes(parseInt(e.response && e.response.status, 10))) {
      return app.$auth.logout().then(() => {
        if (process.client) {
          // Use JSON.parse(atob(feedback)) to decode on login page
          const returnTo = `${window.location.origin}/login?feedback=${btoa(JSON.stringify({
            error: e.response.status,
            error_description: 'Session expired. Please log in again to acces the portal.',
          }))}`;
          window.location = `${logoutPage}?returnTo=${returnTo}`;
        }
      });
    }
    return Promise.reject(e);
  });
};

enter image description here

最佳答案

我猜它是中间件中的代码? 如果是,你不能再使用 process.client 如果你在通用模式下使用 nuxt,它总是会在服务器端执行 1 次。

关于node.js - NuxtServerError 状态码为 500,但错误消息为 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60338518/

相关文章:

javascript - 无法在 Windows 中使用 node.js 中的 javascript 删除文件

caching - 服务静态内容 NGINX

php - Yii2 redis 缓存优于文件缓存

php - 基于分数的 PHP 内存缓存

nuxt.js - 如何在生产模式下使 Nuxt Content 热重载工作

webpack - 如何停止显示 webpack 的构建日志?

javascript - Nuxt.js 中的开发工具样式编辑问题

node.js - nodejs net.createServer 大量数据进来

javascript - 在 Node.JS 中,通过 require ('net' ),你不做 require ('event' ) 吗?

Javascript - .map 内存不足