在这种情况下,查询变量的类型$id
应该是string
。查看您拥有的实际输出会很有帮助。不过,我认为您的示例中的异步函数存在问题。以下代码为我提供了所需的输出{ nodeValues: [ { value1: 'value1' } ] }
:
const dgraph = require("dgraph-js");
const grpc = require("grpc");
const clientStub = async () => new dgraph.DgraphClientStub("localhost:9080", grpc.credentials.createInsecure());
const dgraphClient = async (clientStub) => new dgraph.DgraphClient(clientStub);
async function createData(dgraphClient) {
const txn = dgraphClient.newTxn();
try {
const p = {uid: "0x13", value1: "value1"};
const mu = new dgraph.Mutation();
mu.setSetJson(p);
await txn.mutate(mu);
await txn.commit();
} finally {
await txn.discard();
}
}
const lookupNode = `query nodeValues($id:string) {
nodeValues(func: uid($id)) {
value1,
value2,
value3
}
}`;
const res = async (dgraphClient) => {
const response = await dgraphClient.newTxn().queryWithVars(lookupNode, {$id: "0x13"});
return response.getJson();
};
const main = async () => {
const stub = await clientStub();
const client = await dgraphClient(stub);
await createData(client);
return await res(client);
};
main().then((res) => {
console.log(res);
}).catch((e) => {
console.log("ERROR: ", e);
});
基于官方支持的客户端的示例:https ://github.com/dgraph-io/dgraph-js/blob/master/examples/simple/index.js