You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Nuxt3中Nitro自动导入的server/models文件夹文件列表

获取Nitro自动导入的server/models文件数组

方法1:直接使用import.meta.glob(推荐)

既然你已经用./server/models/**.ts作为自动导入路径,在服务端代码里可以直接用import.meta.glob匹配相同路径,获取文件列表或模块实例:

// 在服务端文件(如server/api/models.ts、server/middleware/*等)中
const modelFiles = import.meta.glob('./server/models/**.ts', { eager: true })

// 获取所有文件路径的数组
const modelPaths = Object.keys(modelFiles)

// 获取所有导入后的模块实例数组
const modelModules = Object.values(modelFiles)
  • 加上{ eager: true }会立即导入所有模块,若需懒加载可移除该选项,此时得到的是返回Promise的函数集合。
  • 该方式与Nitro自动导入的路径完全对齐,能保证获取的文件范围和自动导入一致。

方法2:通过Nitro实例的导入元数据获取

若想直接读取Nitro自动导入的模块元数据,可通过useNitroApp()访问Nitro实例:

// 在服务端上下文环境中(如API路由、中间件)
const nitroApp = useNitroApp()

const autoImports = nitroApp.imports?.modules
if (autoImports) {
  // 筛选出server/models目录下的模块
  const modelModules = autoImports.filter(module => module.file.includes('server/models'))
  // 提取文件路径数组
  const modelPaths = modelModules.map(module => module.file)
}

注意:该方式依赖Nitro内部元数据结构,不同版本可能存在细微差异,优先推荐方法1。


内容的提问来源于stack exchange,提问作者F.NiX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:44:53