Arangodb Foxx依赖项按名称导入,而不是按安装点导入

Arangodb Foxx依赖项按名称导入,而不是按安装点导入,arangodb,foxx,Arangodb,Foxx,就我在阅读本文中关于“定义依赖项”的片段所了解的情况而言,: 将允许使用任何应用程序来满足依赖关系。 sessions或sessions@*将匹配任何名为sessions的应用程序(例如Foxx应用程序商店中的sessions应用程序)。 sessions@1.0.0将与名为sessions的任何应用程序的1.0.0版本相匹配 Foxx将查找名为“sessions”的任何依赖项。但是,当我在本地尝试时,它似乎试图查找在/sessions上装载的任何应用程序,而不是命名为“sessions”,如果

就我在阅读本文中关于“定义依赖项”的片段所了解的情况而言,:

将允许使用任何应用程序来满足依赖关系。 sessions或sessions@*将匹配任何名为sessions的应用程序(例如Foxx应用程序商店中的sessions应用程序)。 sessions@1.0.0将与名为sessions的任何应用程序的1.0.0版本相匹配

Foxx将查找名为“sessions”的任何依赖项。但是,当我在本地尝试时,它似乎试图查找在
/sessions
上装载的任何应用程序,而不是命名为“sessions”,如果我使用这种格式,则会在日志中填充此错误'sessions@1.0.0“:

[ArangoError 3007:装入点只能包含a-z、a-z、0-9或uz.]:[object Arguments]


这是预期的行为吗?我真的希望能够通过名称而不是挂载点导入应用程序。

文档中的简介引用了
manifest.json
文件中的值。清单中的依赖项由映射到字符串的别名定义,格式为
@
。该字符串的确切含义目前尚未强制执行,因此它只是作为应用程序的文档

如果装载具有依赖项的应用程序,则需要设置依赖项(例如,使用web前端)。web前端的“依赖项”对话框允许您输入要用于满足依赖项的应用程序的装载路径

然后,应用程序本身的代码将能够引用由清单中定义的别名装载在这些路径上的应用程序的导出

例如:

  • 您创建了一个名为example的应用程序,该应用程序具有以下依赖项:

    "dependencies": {"mySessions": "sessions@^1.0.0"}
    
  • 您可以安装会话应用程序(例如,来自Foxx应用商店的会话应用程序),并将其安装在
    /my sessions

  • 您可以安装示例应用程序并将其装载到其他位置

  • 您可以在web前端打开示例应用程序的应用程序详细信息,并打开“依赖项”对话框(右上角的图标)

  • 该对话框应显示一个名为MySessions的输入字段,并显示一个帮助弹出窗口,显示
    sessions@^1.0.0

  • 在输入字段中输入
    /my sessions
    ,然后保存

  • 您的示例应用程序现在应该能够在
    applicationContext.dependencies.mySessions
    访问应用程序的导出


  • 谢谢你的提示。我想这应该在文档中澄清。不知何故,这在某种程度上有点误导。起初,我认为它读取的是应用程序名,而不是装入点。在文档/烹饪书中有这个用例将是非常好的。文档中说“可以使用依赖项按钮从服务设置选项卡的web界面配置依赖项。”它应该说“依赖项必须…”这将避免我的一些混淆。它还应该提供一个更完整的示例。