masumsoft / express-cassandra

Cassandra ORM/ODM/OGM for NodeJS with support for Apache Cassandra, ScyllaDB, Datastax Enterprise, Elassandra & JanusGraph.
http://express-cassandra.readthedocs.io
GNU Lesser General Public License v3.0
226 stars 68 forks source link

Unhandled rejection TypeError: gremlin.createClient is not a function #181

Open laran opened 5 years ago

laran commented 5 years ago

I ran npm i --save gremlin and created a model with graph support. I get this error when my express server starts up:

  express-cassandra executing query: SELECT * FROM system_schema.types WHERE keyspace_name = 'shrnk' AND type_name = 'url'; +0ms
  express-cassandra executing query: SELECT * FROM system_schema.types WHERE keyspace_name = 'shrnk' AND type_name = 'href'; +12ms
Unhandled rejection TypeError: gremlin.createClient is not a function
    at Object.create_gremlin_client (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:137:36)
    at Object._assert_gremlin_graph (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:142:30)
    at Object.tryCatcher (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/util.js:16:23)
    at Object.ret [as assertGremlinGraphAsync] (eval at makeNodePromisifiedEval (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/promisify.js:184:12), <anonymous>:13:39)
    at Object.onUserDefinedAggregates (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:409:37)
    at Object._assert_user_defined_aggregates (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:316:7)
    at Object.f (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:424:14)
    at Object._assert_user_defined_functions (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:251:7)
    at Object.f (/Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:436:14)
    at /Users/laran/workspace/shrnk/api/node_modules/express-cassandra/lib/orm/apollo.js:239:7
    at tryCatcher (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/promise.js:694:18)
    at _drainQueueStep (/Users/laran/workspace/shrnk/api/node_modules/bluebird/js/release/async.js:138:12)

I don't think I missed any steps from what I read in the docs. But I must have missed something. What did I miss?

laran commented 5 years ago

So, I had gremlin 3.3.0 installed (currently the latest version). But the Janusgraph support in express-cassandra seems to rely on version 2.7.0. The javascript gremlin API has changed since version 2.7.0.

I've started working on updating Janusgraph support. If anyone's interested in collaborating, the help would be welcome. The modifications seem pretty straightforward. But I'm a noob when it comes to Janusgraph.