为在 GraphQL Apollo 中更新 table 创建正确的模式和解析器
Make properly schema and resolver for update a table in GraphQL Apollo
我正在尝试更新 Postgres 数据库的两个字段:
const update_din_times_for_rep = gql`
mutation update_din_times_for_rep(
$id: Int!
$name: String
$val: String
) {
update_din_times_for_rep(id: $id, name: $name, val: $val) {
id
}
}
`;
下一个:
const [data_din_times_for_rep, { loading:loadingMutation, error:errorMutation }] = useMutation(update_din_times_for_rep);
处理程序的操作:
let handlerMutation = () => {
data_din_times_for_rep({ variables: { id } });
}
<Button onClick={handlerMutation}>Test!</Button>
好像是resolvers.js中的错误,但是试了很多,没有结果:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
如何使解析器尽可能简单?唯一的解析器部分现在对我来说很难,请指教?解析器是别人写的,我需要根据我的情况修改它。
更新。
如何更改 resolver.js 以便将数据写入数据库?我做了一个修改:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
但我不明白接下来要做什么,我尝试按照网上找到的几个示例进行操作。他们中的大多数只使用数组或对象,或者磁盘上的平面数据库文件。没有示例清楚地显示处理对真实 postgres 数据库的突变的方式,如 react->resolver-schema-tables-update db。
在我的例子中,我做了正确的 react->schema-tables。但不是解析器部分。我的模式在类型查询和类型突变部分中声明为查询和突变:
type Time_windows {
id: Bigint
name: String
val: String
}
经过多次尝试,我找到了一个最小的工作代码:
update_din_times_for_rep: async (parent, args) => {
const mytmp = { id: args.id,
name: args.name,
val: args.val,
}
await client.query("insert into din_times_for_rep (id, val) values (, )", [mytmp.id, mytmp.name]);
}
如果有人评论或改进就更好了。
我正在尝试更新 Postgres 数据库的两个字段:
const update_din_times_for_rep = gql`
mutation update_din_times_for_rep(
$id: Int!
$name: String
$val: String
) {
update_din_times_for_rep(id: $id, name: $name, val: $val) {
id
}
}
`;
下一个:
const [data_din_times_for_rep, { loading:loadingMutation, error:errorMutation }] = useMutation(update_din_times_for_rep);
处理程序的操作:
let handlerMutation = () => {
data_din_times_for_rep({ variables: { id } });
}
<Button onClick={handlerMutation}>Test!</Button>
好像是resolvers.js中的错误,但是试了很多,没有结果:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
如何使解析器尽可能简单?唯一的解析器部分现在对我来说很难,请指教?解析器是别人写的,我需要根据我的情况修改它。
更新。 如何更改 resolver.js 以便将数据写入数据库?我做了一个修改:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
但我不明白接下来要做什么,我尝试按照网上找到的几个示例进行操作。他们中的大多数只使用数组或对象,或者磁盘上的平面数据库文件。没有示例清楚地显示处理对真实 postgres 数据库的突变的方式,如 react->resolver-schema-tables-update db。
在我的例子中,我做了正确的 react->schema-tables。但不是解析器部分。我的模式在类型查询和类型突变部分中声明为查询和突变:
type Time_windows {
id: Bigint
name: String
val: String
}
经过多次尝试,我找到了一个最小的工作代码:
update_din_times_for_rep: async (parent, args) => {
const mytmp = { id: args.id,
name: args.name,
val: args.val,
}
await client.query("insert into din_times_for_rep (id, val) values (, )", [mytmp.id, mytmp.name]);
}
如果有人评论或改进就更好了。