我正在尝试模拟我的 graphql 服务器,以便当我查询时,它返回模拟数据而不是转到 graphql 服务器。当我对模拟 graphql 运行查询时,我收到了这个错误:
"errors":[{"message":"Syntax Error GraphQL request (1:13) Expected $, found Name
\"input\"\n\n1: query login(input: {userName: \"james\" , passWord: \"password\"}
这是我目前的设置:
询问
let query = `query login(input: {userName: "james" , passWord: "password"}){
login(input: {userName: "james" , passWord: "password"})
}`;
Run Code Online (Sandbox Code Playgroud)
架构
const typeDefs = `
type loginCrendentialsType {
data: String
}
input loginInputType{
userName: String!
passWord: String!
}
type RootQuery {
login(input: loginInputType): [loginCrendentialsType]
}
schema {
query: RootQuery
}
`;
Run Code Online (Sandbox Code Playgroud)
嘲笑
const mocks = {
login: (loginInputType) => ({
data: mockDB.getUser(loginInputType.userName, loginInputType.passWord)
})
};
Run Code Online (Sandbox Code Playgroud)
设置
const schema = makeExecutableSchema({
typeDefs
});
addMockFunctionsToSchema({
schema,
mocks,
});
graphql(schema,query).then((result) => {
console.log("reachedhere " + JSON.stringify(result));
});
Run Code Online (Sandbox Code Playgroud)
我认为当你提供输入变量时,它一定是变异而不是查询?
使用变量来存储输入对象并将其分配给$input
let query = `query login($input: {input: {userName: "james" , passWord: "password"} }){
login(input: $input)
}`;
Run Code Online (Sandbox Code Playgroud)
或者
let query = `query login{
login(input: {userName: "james" , passWord: "password"})
}`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1995 次 |
| 最近记录: |