未从突变中获取 server.js 文件中邮递员发送的数据
Posted
技术标签:
【中文标题】未从突变中获取 server.js 文件中邮递员发送的数据【英文标题】:Not getting data sent from postman in server.js file from mutation 【发布时间】:2021-10-07 02:52:38 【问题描述】:我正在使用 graphql、prisma 和 express 来测试简单的查询和变异,但是当我从邮递员发送数据时,我没有收到从邮递员发送的数据, 我将这个突变发送到 graphql 但在 server.js 文件中
mutation
createUser(user_name:"test")
user_name
,我越来越不确定, 在 REST API 中,您可以使用 body parser 为 json 修复此问题,是否有类似的方法来处理带有 prisma 和 express 的 graphql 的查询和突变
const PrismaClient = require('@prisma/client');
const express = require('express');
const graphqlHTTP = require('express-graphql');
const makeExecutableSchema = require('@graphql-tools/schema');
const prisma = new PrismaClient();
const typeDefs = `
type User
user_name: String
type Query
allUsers: [User!]!
type Mutation
createUser(user_name:String):User
`;
const resolvers =
Query:
allUsers: () =>
console.log(prisma)
return prisma.user.findMany();
,
Mutation:
createUser:async(user_name)=>
console.log(user_name)
user=
"user_name":user_name
const test= await prisma.user.create( data: user )
return test
;
const schema = makeExecutableSchema(
resolvers,
typeDefs,
);
const app = express();
app.use('/graphql', graphqlHTTP(
schema,
));
app.listen(5000);
【问题讨论】:
【参考方案1】:GraphQl 查询/变异的参数通过解析器的第二个参数(通常定义为 args
)传递。像这样更新你的Mutation
Mutation:
createUser: async (parent, args, context) =>
console.log(args.user_name);
user =
user_name: args.user_name,
;
const test = await prisma.user.create( data: user );
return test;
,
,
我能够在修改后按原样运行您的代码。
我建议查看 express-graphql 的文档或一些示例代码,以更熟悉该库的工作原理。 This example 是开始如何使用 express、graphql 和 prisma 的好地方。它在打字稿中,但与您需要的非常相似。
【讨论】:
非常感谢 Tasin Ishmam 很高兴为您提供帮助!如果回答了问题,请将答案标记为“正确答案”,以便将来对其他人有用。以上是关于未从突变中获取 server.js 文件中邮递员发送的数据的主要内容,如果未能解决你的问题,请参考以下文章
Cakephp 资产未从 webroot 文件夹中获取.. 缺少 js 和 css,