我有一个用Nextjs、GraphQL和GraphCMS创建的小博客站点,已经可以使用create注释功能了,但是我必须手动在CMS上发布。创建时,我希望已经准备到发布的注释。
这是突变码。
const query = gql`
mutation CreateComment($name: String!, $email: String!, $comment: String!, $slug: String!) {
createComment(data: {name : $name, email : $email, comment: $comment, post: { connect: { slug: $slug}}}) { id }
}
`这就是我的全部代码
import { GraphQLClient, gql } from 'graphql-request';
const graphqlAPI = process.env.NEXT_PUBLIC_GRAPHCMS_ENDPOINT
const graphcmsToken = process.env.GRAPHCMS_TOKEN
export default async function comments(req, res) {
const graphQLClient = new GraphQLClient(graphqlAPI, {
headers: {
authorization: `Bearer ${graphcmsToken}`
}
})
const query = gql`
mutation CreateComment($name: String!, $email: String!, $comment:
String!, $slug: String!) {
createComment(data: {name : $name, email : $email, comment:
$comment, post: { connect: { slug: $slug}}}) { id }
}
`
try {
const result = await graphQLClient.request(query, req.body);
return res.status(200).send(result);
} catch (error) {
console.log(error);
return res.status(500).send(error);
}
}发布于 2021-11-07 08:04:04
编辑的
好的,经过一番研究,我发现模型在GraphCMS中都有一些预定义的解析器函数。因此,要直接发布您的内容,您需要像这样更新您的突变函数:
const query = gql`
mutation CreateComment($name: String!, $email: String!, $comment:
String!, $slug: String!) {
createComment(data: {name : $name, email : $email, comment:
$comment, post: { connect: { slug: $slug}}}) { id }
publishComment(where : {slug:$slug}) {
title
}
}
`如果slug不是您的唯一字段,则必须将publishComment解析器中的slug字段替换为您的唯一字段。
https://stackoverflow.com/questions/69868247
复制相似问题