Javascript 如何从Contentful中提取单个条目并按字段值查询?

Javascript 如何从Contentful中提取单个条目并按字段值查询?,javascript,content-management-system,axios,contentful,Javascript,Content Management System,Axios,Contentful,我正在尝试根据条目的名称自定义字段检索单个条目 我尝试过使用JS SDK,并提供了各种选项: client.getEntry("entryID") // .where("content_type", "Restaurant") // .where("fields.name[match]", "RestaurantName") // .all() .then(data => console.log('data', data)) .catch(err =

我正在尝试根据条目的名称自定义字段检索单个条目

我尝试过使用JS SDK,并提供了各种选项:

client.getEntry("entryID")
    // .where("content_type", "Restaurant")
    // .where("fields.name[match]", "RestaurantName")
    // .all()
    .then(data => console.log('data', data))
    .catch(err => console.log('err', err))
但是基于返回的错误,它建议我只能使用
.getEntry
并传入条目ID

我还考虑过使用
axios
发出HTTP请求,但遇到了一个类似的问题,即只能检索完整的条目列表或根据条目ID进行过滤


是否可以通过'field.name==“Slug”或其他我添加的自定义字段来获取条目?

当前使用getEntry获取条目的唯一方法是传入sys.id值。只要我们向Contentful请求任何内容,我们就使用单个控制器。这允许我们设置错误消息,将返回的数据转换为我们想要的格式,等等。我们向控制器添加了我们自己的getEntry助手函数,可以由

contentfulController.getEntry({
   content_type: 'indexPage',
   'fields.slug[match]': slug,
   include: 3,
   locale: language,
});
然后在我们自己的getEntry函数中,我们获取数组中的第一个,并返回对象,因为我们总是知道我们将返回一个

但是,重要的是要注意,如果slug中有子字符串,这可能会导致问题。假设您有两个带有Slug的项目:

/resource
/resourcelisting

如果查询'fields.slug[match]':'/resource',它将在结果中返回这两个项目,因此您还应该检查哪一个具有所需的实际slug,而不是其中的一部分

感谢这一点,getEntry不起作用,但使用该查询对象的getEntries()起作用