Проблема с отправкой сообщения: отрывок не определен в «посте»
Ответ: Я понял это. Продолжение устарело, и API GraphQL получил обновление. Мне пришлось пойти на их API Playground и переписать код.
Я веду блог на Nextjs, используя hygraph.com в качестве серверной части. Я пытался перенести его туда, где при нажатии можно было видеть сообщения, но он внезапно перестал у меня работать. Если вам это нужно, вот весь мой код: https://github.com/DeviousWings/blog-app
Я использую это продолжение программы:https://www.youtube.com/watch?v=HYv55DhgTuA Кажется, моя ошибка находится на отметке 1:46:40.
Если вам нужна дополнительная информация, дайте мне знать, и я внесу «правку» впереди.
Вот сообщение об ошибке:
Server Error
Error: [line: 1] field 'excerpt' is not defined in 'Post':
{"response":{"errors":[{"message":
"[line: 1] field 'excerpt' is not defined in 'Post'"}],
"data":null,"extensions":"requestId":"clgir0yw21ztz0blki9cm5z9o"},
"status":400,"headers":{}},"request":
query GetPostDetails($slug : String!) {
post(where: {slug: $slug}) {
author{
name
bio
photo {
url
}
}
createdAt
slug
title
excerpt
featuredImage {
url
}
categories {
name
slug
}
content {
raw
}
}
}
`;
",
"variables":{"slug":"space-cockpit"}}}
Вот источник бардака:
services\index.js (109:17) @ async getPostDetails
107 |
108 |
> 109 | const result = await request(graphqlAPI, query, { slug });
| ^
110 |
111 | return result.post;
112 | };
Вот весь код, в котором находится исходный код (blog-app\services\index.js):
import { request, gql } from "graphql-request";
const graphqlAPI = process.env.NEXT_PUBLIC_GRAPHCMS_ENDPOINT;
export const getPosts = async () => {
const query = gql
`query MyQuery {
postsConnection {
edges {
node {
author {
bio
name
id
photo {
url
}
}
createdAt
slug
title
exerpt
featuredImage {
url
}
categories {
name
slug
}
}
}
}
}
`;
const result = await request(graphqlAPI, query)
return result.postsConnection.edges;
};
export const getCategories = async () => {
const query = gql`
query GetGategories {
categories {
name
slug
}
}
`;
const result = await request(graphqlAPI, query);
return result.categories;
}
export const getRecentPosts = async () => {
const query = gql `
query GetPostDetails() {
posts(
orderBy: createdAt_ASC
last: 3
) {
title
featuredImage {
url
}
createdAt
slug
}
}
`
const result = await request(graphqlAPI, query)
return result.posts;
};
export const getPostDetails = async (slug) => {
const query = gql`
query GetPostDetails($slug : String!) {
post(where: {slug: $slug}) {
author{
name
bio
photo {
url
}
}
createdAt
slug
title
excerpt
featuredImage {
url
}
categories {
name
slug
}
content {
raw
}
}
}
`;
const result = await request(graphqlAPI, query, { slug });
return result.post;
};
export const getSimilarPosts = async (categories, slug) => {
const query = gql`
query GetPostDetails($slug: String!, $categories: [String!]) {
posts(
where: {slug_not: $slug, AND: {categories_some: {slug_in: $categories}}}
last: 3
) {
title
featuredImage {
url
}
createdAt
slug
}
}
`;
const result = await request(graphqlAPI, query, { slug, categories });
return result.posts;
};
Мои модели:
Я не умею отлаживать, но мой console.log ничего не обнаружил.
1 ответ
Догадаться. Продолжение устарело, и API GraphQL получил обновление. Мне пришлось пойти на их API Playground и переписать код.