具有必需参数的 GraphQL 突变器
GraphQL mutator with required args
我正在为 GraphQL 模式编写一个变更:
const Schema = new GraphQLSchema({
mutation: new GraphQLObjectType({
name: 'Mutation',
fields: () => ({
person: {
type: GraphQLString,
args: {
name: {type: GraphQLString},
school: {type: GraphQLString},
},
resolve: mutatePerson,
},
}),
}),
});
我想确保 mutatePerson
仅在同时存在 name
和 school
参数时才有效。我该如何检查?
GraphQLNonNull
类型包装器用于将字段和参数指定为非空。对于字段,就是查询结果中字段的值不能为空。对于参数,这意味着参数不能被遗漏或具有 null 值。所以你的代码只需要看起来更像这样:
args: {
name: {
type: new GraphQLNonNull(GraphQLString),
},
school: {
type: new GraphQLNonNull(GraphQLString),
},
},
如果你想拒绝像“”这样的空字符串,最好按照下面(在模型中)来做,它不同于Null,这样你可以拒绝Null和空“”。
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const buinessSchema = new Schema({
name: { type: String, required: true, unique: true },
address: { type: String, required: true },
phone: { type: String, required: true },
email: { type: String, required: true },
website: { type: String, required: true },
currency: { type: String, required: true },
aboutus: { type: String, required: true },
terms: String,
slogan: String,
logo: { type: String, required: true }
});
module.exports = mongoose.model("Buiness", buinessSchema);
我正在为 GraphQL 模式编写一个变更:
const Schema = new GraphQLSchema({
mutation: new GraphQLObjectType({
name: 'Mutation',
fields: () => ({
person: {
type: GraphQLString,
args: {
name: {type: GraphQLString},
school: {type: GraphQLString},
},
resolve: mutatePerson,
},
}),
}),
});
我想确保 mutatePerson
仅在同时存在 name
和 school
参数时才有效。我该如何检查?
GraphQLNonNull
类型包装器用于将字段和参数指定为非空。对于字段,就是查询结果中字段的值不能为空。对于参数,这意味着参数不能被遗漏或具有 null 值。所以你的代码只需要看起来更像这样:
args: {
name: {
type: new GraphQLNonNull(GraphQLString),
},
school: {
type: new GraphQLNonNull(GraphQLString),
},
},
如果你想拒绝像“”这样的空字符串,最好按照下面(在模型中)来做,它不同于Null,这样你可以拒绝Null和空“”。
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const buinessSchema = new Schema({
name: { type: String, required: true, unique: true },
address: { type: String, required: true },
phone: { type: String, required: true },
email: { type: String, required: true },
website: { type: String, required: true },
currency: { type: String, required: true },
aboutus: { type: String, required: true },
terms: String,
slogan: String,
logo: { type: String, required: true }
});
module.exports = mongoose.model("Buiness", buinessSchema);