join-monster / join-monster-graphql-tools-adapter

Use Join Monster to fetch your data with Apollo Server.
140 stars 20 forks source link

Example doesn't work #7

Open RedShift1 opened 6 years ago

RedShift1 commented 6 years ago

Code here: https://gist.github.com/RedShift1/cb60eb8fc67fbfc7cd823e907dd445d9 Database from https://github.com/acarl005/join-monster-graphql-tools-adapter/tree/master/db

The only change I made compared to the example was in the user resolver, wrapping the "return joinMonster" in a Promise.then(), because require('sqlite').open(...) returns a Promise.

Result:

C:\tmp\test>node index.js
{ data: { user: null } }

Dependency versions: "dependencies": { "graphql": "^0.12.3", "graphql-tools": "^2.14.1", "join-monster": "^2.0.15", "join-monster-graphql-tools-adapter": "0.0.2", "sqlite": "^2.9.0" },

IrinaShirinsky commented 5 years ago

You have to use knex to connect to your database (https://knexjs.org/) For example,

var pg = require('knex')({
  client: 'pg',
  connection: process.env.PG_CONNECTION_STRING,
  searchPath: ['knex', 'public'],
});

Once you added this, QueryRoot resolve method will work correctly.

        return joinMonster(resolveInfo, {}, sql => {
            // knex is a query library for SQL databases
            return knex.raw(sql);
          })

and data will be returned from your database.