Gremlin Javascript - Could not locate method: DefaultGraphTraversal.to([{value

520 views
Skip to first unread message

Waleed Zeb Khan

unread,
Aug 27, 2019, 12:49:48 AM8/27/19
to Gremlin-users


I am getting this error while trying Gremlin Javascript  with Janusgraph and cassandra. Can someone help?

Code:
console.log('Done');
try{
const v1 = await g.addV('person').property('name','marko').next(); //1
console.log(v1,'V1-----');
const v2 = await g.addV('person').property('name','stephen').next();//2
console.log(v2, 'V2-----');
const reply = await g.V(v2).addE('knows').to(v1).next();//3
console.log(reply,'Final---');
}catch(err){
console.log('Your Error--->', err);
}

OUTPUT/////
Done { value: Vertex { id: 90120, label: 'person', properties: undefined }, done: false } V1----- { value: Vertex { id: 94216, label: 'person', properties: undefined }, done: false } V2----- Your Error---> Error: Server error: Could not locate method: DefaultGraphTraversal.to([{value={id=90120, label=person}, done=false}]) (599) at Connection._handleMessage (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/gremlin/lib/driver/connection.js:265:9) at WebSocket.<anonymous> (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/gremlin/lib/driver/connection.js:128:43) at WebSocket.emit (events.js:203:13) at Receiver._receiver.onmessage (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/WebSocket.js:141:47) at Receiver.dataMessage (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/Receiver.js:380:14) at Receiver.getData (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/Receiver.js:330:12) at Receiver.startLoop (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/Receiver.js:165:16) at Receiver.add (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/Receiver.js:139:10) at Socket.<anonymous> (/Users/waleedzebkhan/Dev Projects/node-test1/node_modules/ws/lib/WebSocket.js:138:22) at Socket.emit (events.js:203:13)

Waleed Zeb Khan

unread,
Aug 27, 2019, 11:24:25 PM8/27/19
to Gremlin-users

I solved the error. The .next() function returns two objects while we add Vertex. But the .to() function requires only the vertex object. So to get single vertex object either you can return a .toList() while creating vertices or you can use the value object in the returned two objects.

First method:

const v1 = await g.addV('person').property('name','Kamal').next();
const v2 = await g.addV('person').property('name','Ahmad').next();
const Edge = await g.V(v1.value).addE('knows').to(v2.value).next();

2nd Method:

const v1 = await g.addV('person').property('name','Kamal').toList();
const v2 = await g.addV('person').property('name','Ahmad').toList();
const edge = await g.V(v1[0]).addE('knows').to(v2[0]).toList(); // Here you can use any .toList or next() it doesn't matter.
Reply all
Reply to author
Forward
0 new messages