vue.js 在Nuxt Content API查询中使用$contains

lymgl2op  于 2023-03-24  发布在  Vue.js
关注(0)|答案(1)|浏览(238)

我尝试只检索包含我的Nuxt内容查询中的某个标记的博客文章(在我的/content目录中)。由于我在Nuxt内容查询字符串中使用URL查询参数,我不得不使用Nuxt内容创建的API(在这里记录)。
不幸的是,我看不到任何关于如何在查询中使用where子句的$contains参数的文档,如果您使用服务器端版本(使用queryContent,如这里所述),则可以使用该参数。
我当前的代码(如下)返回了一个空数据集,我相信这意味着我使用了正确的语法(否则我会得到一个“Bad Request”错误,但它没有返回任何内容,这不是我所期望的,因为我已经检查了我传递的标记,我肯定有博客文章标记了该标记。
blog/index.vue上的<script setup>

const getPostsByTag = async (tag) => {
  const postsArr = await fetch(`/api/_content/query?_params={"where":{"tags":{"_contains":"${tag}"}}}`).then(res => res.json())
  return postsArr
}

content/testing中的示例博客文章

---
title: 'Test 1'
slug: 'test-1'
tags: [ 'test' ]
excerpt: "lorem ipsum dolor sit amet consectetur adipiscing elit non nobis domine"
created: '2023-03-08'
updated: '2023-03-12'
---

<p>Cupcake ipsum dolor sit amet soufflé icing carrot cake marshmallow. Chupa chups marshmallow dragée candy canes danish muffin dragée tootsie roll lollipop. Marshmallow lemon drops cake pudding powder muffin oat cake apple pie tiramisu. Powder liquorice gummies marshmallow toffee gummies danish sugar plum sweet. Lollipop candy jelly topping cake cake. Jelly beans pudding bonbon pastry cake icing biscuit. Soufflé lollipop jelly candy canes tart.</p>

我非常清楚我可能是在错误的树上,事实上,我可以通过<script setup>访问查询参数,这将是非常有用的,所以如果是这样的话,请让我知道!

sczxawaw

sczxawaw1#

我考虑过删除这个问题,因为答案其实很简单,但我决定我会回答这个问题,以防其他人也有同样的问题。你可以把从前端脚本中检索到的url参数传递给后端脚本,它仍然可以工作。这个问题似乎更多地源于我对Nuxt/Vue的根本误解

const getPostsByTag = async (tag) => {
  return queryContent().where({ 'tags': { $contains: tag } }).find()
}

相关问题