ArangoDB:处理遍历中的悬垂边

ArangoDB: handling dangling edges in a Traversal

我正在使用 ArangoDB 2.8 和 arangojs。

出于某些原因,我的数据中存在悬空边缘(我无法更改)。在遍历复杂的扩展器函数中,我正在寻找一个特定的文档,然后将其推送到扩展器的连接数据结构中:

var refDoc = someColl.document(obj1[someProp]);

connected.push( edge:theEdge, vertex: refDoc });

如果搜索的文档不存在,如何避免遍历扩展器被 someColl.document() 引发的错误停止?

我试过使用 Node 风格的回调,但没有成功。 我应该尝试(如何?)在服务器的模块上添加 es6-promise 或 bluebird 吗?

谢谢。

正如 Mike Williamson 已经建议的那样,try {} catch是要走的路:

const arangodb = require('@arangodb');

try {
 var refDoc = someColl.document(obj1[someProp]);
 connected.push( edge:theEdge, vertex: refDoc });
}
catch (ex) {
  if ((ex not instanceof ArangoError) or
      (ex.errorNum !== arangodb.ERROR_ARANGO_DOCUMENT_NOT_FOUND)) {
    throw(ex)
  }
}

因此您可以忽略 找不到文档 错误,但继续抛出其他(可能更致命)错误。