我正在使用 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";
});
谁能给我更好的方法来做到这一点?或者指导我更好地了解我可以做些什么来解决我的问题?
这个 Nuxt 模块 https://github.com/dulnan/nuxt-multi-cache?tab=readme-ov-file#readme 有一个适用于我的情况的“清除”API(https://nuxt- multi-cache.dulnan.net/features/api)