我正在努力将公司与用户联系起来。我在用户类型上创建了一个新的公司字段,我告诉它它的类型为@app.route('/')
def home():
return 'Welcome! <a href="/login">login here</a>'
@app.route('/login', methods=['GET', 'POST']):
if flask.request.method == 'POST'
userEmail = request.form['userEmail']
userPassword = request.form['userPassword']
return flask.redirect('/')
return flask.render_template('form_filename.html')
。
我的下一步是在此属性上定义解析函数,以便GraphQL知道如何查找与给定用户关联的公司。
所以我的目标是吸引用户并找到他们的关联公司。我想教GraphQL如何从用户走到公司。
这是我写的代码:
CompanyType
我对const graphql = require('graphql');
const axios = require('axios');
const { GraphQLObjectType, GraphQLString, GraphQLInt, GraphQLSchema } = graphql;
const CompanyType = new GraphQLObjectType({
name: 'Company',
fields: {
id: { type: GraphQLString },
name: { type: GraphQLString },
description: { type: GraphQLString }
}
});
const UserType = new GraphQLObjectType({
name: 'User',
fields: {
id: { type: GraphQLString },
firstName: { type: GraphQLString },
age: { type: GraphQLInt },
company: {
type: CompanyType,
resolve(parentValue, args) {
console.log(parentValue, args);
}
}
}
});
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
user: {
type: UserType,
args: { id: { type: GraphQLString } },
resolve(parentValue, args) {
return axios
.get(`http://localhost:3000/users/${args.id}`)
.then(res => res.data);
}
}
}
});
module.exports = new GraphQLSchema({
query: RootQuery
});
的期望是在控制台中获取此输出:
console.log(parentValue, args);
在我访问graphiQL并点击播放按钮后请求:
`{ id: '23', firstName: 'Bill', age: 20, companyID: '1' } {}`
相反,我在控制台中获得的输出是:
{
user(id: "23") {
firstName
company {
id
}
}
}
我不知道为什么我没有成功地教会GraphQL如何使用resolve函数来填充此公司属性。请帮忙。