如何在 Nuxt 3 中使用 SWR 渲染模式强制重置缓存?

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

我正在使用 Nuxt 3,我的“nuxt.config.ts”文件中有“routeRoules”属性,我正在学习不同的渲染模式,我想使用 SWR 模式,但我需要有可能手动重置缓存,例如使用管理 UI 中的按钮调用的端点,我找不到任何相关信息,但在 .nuxt 文件夹中挖掘,我可以看到缓存已保存到文件夹中使用 .json 文件,我找到的文件夹路径是:“././nuxt/cache/”,所以我想到了一种解决方法,删除该文件夹及其中的所有文件,这对我有用,但我不认为这是最佳解决方案:

执行此操作的端点:

import fs from "fs";
import path from "path";

function removeFolderRecursive(folderPath) {
  if (fs.existsSync(folderPath)) {
    fs.readdirSync(folderPath).forEach((file) => {
      const currentPath = `${folderPath}/${file}`;

      if (fs.lstatSync(currentPath).isDirectory()) {
        // Recursively remove subfolders.
        removeFolderRecursive(currentPath);
      } else {
        // Remove files.
        fs.unlinkSync(currentPath);
        console.log(`Deleted file: ${currentPath}`);
      }
    });

    // Finally, remove the folder itself.
    fs.rmdirSync(folderPath);
    console.log(`Deleted folder: ${folderPath}`);
  }
}

export default defineEventHandler(async function (event) {
  const folderPath = path.resolve("./.nuxt/cache/nitro/routes/_");

  try {
    removeFolderRecursive(folderPath);
  } catch (err) {
    console.error("Error deleting folder:", err);
  }

  return "ok";
});

谁能给我更好的方法来做到这一点?或者指导我更好地了解我可以做些什么来解决我的问题?

vue.js nuxt.js nuxt3 node.js-fs nitro
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.