【发布时间】:2020-09-19 01:49:52
【问题描述】:
我正在尝试使用 gremlin npm 模块并连接到 Neptune 数据库。在测试期间,我尝试让 gremlin 连接到非活动端点和无效 url,以使系统更具弹性。我预计会引发某种错误。但是,对于无效/非活动 url,图形遍历无法在没有消息传递的情况下解决。
const traversal = gremlin.process.AnonymousTraversalSource.traversal;
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
const dc = new DriverRemoteConnection('wss://localhost:80');
const g = traversal().withRemote(dc);
const data = await g.V().limit(1).toList();
console.log(data);
我希望g.V().limit(1).toList() 在使用无效的远程连接时会引发错误。同样,promise 永远不会解决,并且下一行的 console.log(data) 永远不会运行。
对此的任何帮助将不胜感激!我需要某种系统来检测数据库连接是否有效,如果不是则记录错误。
【问题讨论】:
-
我尝试将 Node (Javascript) 客户端与不存在的主机一起使用,并且在我尝试连接时立即引发异常。而不是使用
localhost,如果您使用绝对无法解析的东西,例如“abc123”,您会看到什么。即使使用localhost我也看到连接被拒绝错误。我有可能您的代码以某种方式吞噬了异常? -
@KelvinLawrence 您好,感谢您的回复!当我输入“abc123”时,会立即抛出错误
TypeError [ERR_INVALID_URL]: Invalid URL:。但是,当我输入wss://localhost:8080时,我没有收到任何错误或结果。我正在捕获异常并使用g.V().limit(1).toList().then(res => console.log(res)).catch(err=>console.log(err));记录它们 -
你有没有可能在
localhost端口上监听?当我在我的系统上尝试它时,我得到了正确抛出的Error: connect ECONNREFUSED 127.0.0.1:8080异常。 -
@KelvinLawrence 奇怪的是,当我
curl -G https://localhost:8080/时出现连接错误。请问您运行的是什么版本的 Gremlin? -
Node.js 8.15 和 Gremlin javascript 3.4.1 - 我也可以尝试更高版本。
标签: gremlin graph-databases amazon-neptune