Nodejs CompanyId未出现在控制台日志中

时间:2018-04-16 15:37:50

标签: node.js graphql graphiql

我正在努力将公司与用户联系起来。我在用户类型上创建了一个新的公司字段,我告诉它它的类型为@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函数来填充此公司属性。请帮忙。

0 个答案:

没有答案