据我所知,Arango 不包括开箱即用的审计。下面是我关于如何在 Foxx 中处理服务依赖项的说明。官方文档可以在here 找到。文档对我来说似乎很困惑,所以我一弄明白就写了一些笔记:)
假设我们有包含 function1 的 service1。我们想从 service2 调用 function1。
1.-在service1导出函数1的顶层main.js文件中
module.exports.function1 = function1;
2.- 在 service1 的清单中添加提供部分:
"provides" :{
"@generic/generic" : "0.0.1"
},
——在上面,“@generic”是一个命名空间,“generic”是用来引用这个特定依赖的名称。请注意,命名空间不必对这一服务是唯一的,并且可以在其他服务中使用(例如“@generic/helper”)
3.- 修改 service2 的清单,这将消耗依赖,以便它知道依赖。
"generic": {
"name": "@generic/generic",
"version": "^0.0.1",
"description": "Generic collection get",
"required": false,
"multiple":false
}
– 在上面,顶级标签(“通用”)是依赖项的别名,它实际上可以是任何东西,只要它在清单中列出的所有依赖项中是唯一的。 “名称”是指在 service1 的清单上定义的依赖项。其他选项一目了然。
4.- 在 Arango web Gui 中,转到 service2 的设置并单击依赖项按钮以添加依赖项的挂载点(右上角)。如果该按钮未启用,请确保已保存对 service2 清单的更改并且已在 Arango 中更新服务)
/generic
5.- 最后,在service2的代码中,使用上下文对象的依赖来引用依赖
var generic = module.context.dependencies.generic;
const collection = generic.function1(param1,...);