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

在Nuxt3中使用Directus模块过滤查询结果的正确方法

在Nuxt3中使用Directus模块过滤Prestations集合条目

组件内直接查询过滤

在Vue组件中使用useDirectusItems时,需遵循Directus的过滤语法传入filter参数,核心是必须用操作符包裹字段值,不能直接写active: true:

<script setup>
const { data: prestations } = await useDirectusItems('Prestations', {
  filter: {
    active: { _eq: true } // 使用_eq操作符匹配等于true的条目
  }
})
</script>

Server端路由中过滤查询

如果在Server目录的API路由中获取数据,写法如下:

// server/api/prestations.get.ts
export default defineEventHandler(async (event) => {
  const directus = useDirectus()
  return await directus.items('Prestations').readByQuery({
    filter: {
      active: { _eq: true }
    }
  })
})

全局配置默认过滤参数

若希望所有对Prestations集合的查询都默认过滤active: true的条目,可在nuxt.config.ts中配置:

export default defineNuxtConfig({
  modules: ['@nuxtjs/directus'],
  directus: {
    // 针对特定集合设置默认查询参数
    collectionQueries: {
      Prestations: {
        filter: {
          active: { _eq: true }
        }
      }
    },
    // 若要给所有集合设置全局默认过滤,使用globalQuery
    // globalQuery: {
    //   filter: { active: { _eq: true } }
    // }
  }
})

常见踩坑点

  • 字段名区分大小写,确保active和Directus集合中的字段名称完全一致
  • 过滤必须使用Directus支持的操作符(如_eq、_gt、_contains等),直接写字段值不会生效
  • 检查@nuxtjs/directus模块版本,确保和Nuxt3、Directus服务端版本兼容

内容的提问来源于stack exchange,提问作者Posoroko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:40:57