Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js GraphQL&;从OracleDB中提取数据:查询用Resultset响应,而不';不要来到Graphql解析器窗口_Node.js_Graphql_Graphql Js_Express Graphql_Node Oracledb - Fatal编程技术网

Node.js GraphQL&;从OracleDB中提取数据:查询用Resultset响应,而不';不要来到Graphql解析器窗口

Node.js GraphQL&;从OracleDB中提取数据:查询用Resultset响应,而不';不要来到Graphql解析器窗口,node.js,graphql,graphql-js,express-graphql,node-oracledb,Node.js,Graphql,Graphql Js,Express Graphql,Node Oracledb,我是GraphQL新手 开始开发GraphQL应用程序,从oracle数据库中提取数据 这是一个非常简单的应用程序。查询以resultset响应,可以在console.log中看到查询结果;但是,它不会出现在graphql窗口(响应/解析器窗口)中。它抛出了错误 对于非User.email,无法返回null 我在oracle连接中尝试了这个承诺。不确定,为什么它没有在GraphQL中显示数据 UserType.js module.exports = new GraphQLObjectType({

我是GraphQL新手

开始开发GraphQL应用程序,从oracle数据库中提取数据

这是一个非常简单的应用程序。查询以
resultset
响应,可以在
console.log
中看到查询结果;但是,它不会出现在
graphql
窗口(响应/解析器窗口)中。它抛出了错误

对于非User.email,无法返回null

我在oracle连接中尝试了这个承诺。不确定,为什么它没有在GraphQL中显示数据

UserType.js

module.exports = new GraphQLObjectType({
  name: 'User',

  fields: () => {
    return{
      id: { type: GraphQLID },
      email: { type: new GraphQLNonNull(GraphQLString) }
    }
  }
});
DBConnection.js

module.exports = oraPool => {
  return  {
    getUsers(apiKey){
      return oracledb.createPool(oraConfig).then(function() {
    console.log("Connection Pool created");
    return oracledb.getConnection().then(function(conn) {
      return conn.execute(
        //`SELECT 'User ' || JSON_OBJECT ('id' VALUE id, 'email' VALUE email) FROM users where id = :id`
        `SELECT  * FROM users WHERE id = :id`
        ,[apiKey]).then(result => {
          //console.log(result.metaData);
          console.log(humps.camelizeKeys(result.rows[0]));
          conn.close();
          return humps.camelizeKeys(result.rows[0]);
        })
        .catch(function(err) {
          console.log(err.message);
          return connection.close();
        });
      })
      .catch(function(err) {
        console.error(err.message);
      });
    })
      }
    }
  }
Type.js

const RootQueryType = new GraphQLObjectType({
  name: 'RootQueryType',

  fields: {
    user: {
      type: UserType,
      args: {
    key: { type: new GraphQLNonNull(GraphQLString) }
      },
      resolve: (obj, args, { oraPool }) => {
    return oradb(oraPool).getUsers(args.key);
      }

    }
  }
});

这段代码相当复杂,我建议从头开始。例如,每次运行查询时都要调用
createPool
。您应该在应用程序初始化期间创建池

虽然你说这将是一个简单的应用程序,但它总是可以增长的。从头开始创建GraphQL服务器并非易事。我建议通过加入怪物带来一些帮助。不幸的是,加入怪物不再是积极发展。但它相当稳定,比从头开始要好得多。下面是对其工作原理的一个很好的概述:

我最近做了一个关于GraphQL的演讲,您可以在这里看到:

对于演示,我采用了我在中描述的一个简单API模式,并将其调整为通用EMP和DEPT演示表上的GraphQL服务器。您可以在此处访问代码:

另外,我的另一位同事在这里谈到GraphQL:

这段代码非常复杂,我建议从头开始。例如,每次运行查询时都要调用
createPool
。您应该在应用程序初始化期间创建池

虽然你说这将是一个简单的应用程序,但它总是可以增长的。从头开始创建GraphQL服务器并非易事。我建议通过加入怪物带来一些帮助。不幸的是,加入怪物不再是积极发展。但它相当稳定,比从头开始要好得多。下面是对其工作原理的一个很好的概述:

我最近做了一个关于GraphQL的演讲,您可以在这里看到:

对于演示,我采用了我在中描述的一个简单API模式,并将其调整为通用EMP和DEPT演示表上的GraphQL服务器。您可以在此处访问代码:

另外,我的另一位同事在这里谈到GraphQL:

请避免删除和重新发布问题。这是普遍考虑的。如果你无意中删除了一个问题,你总是可以取消删除它。@Daniel Rearden,我的错。我想就我的问题提供更详细的信息(stackoverflow的新手)。还想添加更多信息-my console.log输出类似于[1,'ora@11.com“]您可以通过编辑问题来添加信息。请不要删除和重新发布。请避免删除和重新发布问题。这是普遍考虑的。如果你无意中删除了一个问题,你总是可以取消删除它。@Daniel Rearden,我的错。我想就我的问题提供更详细的信息(stackoverflow的新手)。还想添加更多信息-my console.log输出类似于[1,'ora@11.com“]您可以通过编辑问题来添加信息。请不要删除和转发。也请看谢谢你非常丹。我是你在Oracle的Nodejs博客的忠实读者。你在这里的介绍帮助我澄清了我这边的很多事情,现在我再也看不到那个错误了。但有一个问题是,对于突变,我们有没有像join monster这样的插件,我不这么认为。不过,对于突变,编写自己的解析器可能不是太糟糕。实际上,查询很困难,因为它们可以嵌套并引用多个类型(外键),这会导致复杂的动态SQL。谢谢@DanMcGhan。这个问题得到了回答并解决了我所有的问题。@DanMcGhan,我正在将其投入生产过程中。想了解一些关于加入怪物的事情。有没有一种方法可以在select语句中使用oracle提示。我们如何提高联接的性能?提前谢谢。如果需要的话,我可以提出一个新问题。再见,非常感谢Dan。我是你在Oracle的Nodejs博客的忠实读者。你在这里的介绍帮助我澄清了我这边的很多事情,现在我再也看不到那个错误了。但有一个问题是,对于突变,我们有没有像join monster这样的插件,我不这么认为。不过,对于突变,编写自己的解析器可能不是太糟糕。实际上,查询很困难,因为它们可以嵌套并引用多个类型(外键),这会导致复杂的动态SQL。谢谢@DanMcGhan。这个问题得到了回答并解决了我所有的问题。@DanMcGhan,我正在将其投入生产过程中。想了解一些关于加入怪物的事情。有没有一种方法可以在select语句中使用oracle提示。我们如何提高联接的性能?提前谢谢。如果需要,我可以提出一个新问题。