我使用Ubuntu(14.04)在AWS上创建了EC2实例。我正在尝试使用foxx manager安装arangodb应用程序。我用putty连接到它。我使用sudo apt-get install arangodb安装了arangodb。我也从ubuntu机器上的git获得了项目。当我尝试使用 foxx-manager install安装应用程序时。 / DataSandbox 它给出错误
“StdOut:ArangoError 3103:无法调用模块。
文件:/var/lib/arangodb-apps/_db/_system/DataSandbox/APP/controllers/Reports.js
原因:ArangoError 3100:无法定位模块
文件:存储库/报告“
当我检查文件存储库/报告它存在时,当我检查/ var / lib / arangodb-apps路径时,它就在那里,直到Datasandbox像/ var / lib / arangodb-apps / _db / _system / DataSandbox /。在arangodb-apps中,Datasandbox文件夹为空。
我在不是从AWS创建的不同ubuntu机器上执行的相同过程。在它上面已成功安装。
任何人都可以指导我这个错误找不到模块?
先谢谢。
答案 0 :(得分:2)
您能否澄清一下您看到的两台机器(即它所使用的机器和它没有运行的机器)是否运行相同版本的ArangoDB以及您使用的是哪个版本? / p>
该错误表示require
中controllers/Reports.js
的{{1}}来电无法解决repositories/Reports
。如果它使用的计算机运行的是旧版本的ArangoDB,那么您可能会对require
解析某些名称的方式有所改变:https://www.arangodb.com/2015/11/foxx-module-resolution-will-change-in-2-8/
我认为你在控制器中确实有这样的表达式:
require('repositories/Reports')
这在2.8及更高版本中不起作用,因为它将尝试找到一个名为" repositories / Reports"的第三方或ArangoDB模块。并失败。
而应该是从控制器文件到存储库文件的相对路径:
require('../repositories/Reports')