2014-11-23 139 views
1

我爲我正在創建的應用程序創建了一個foxx應用程序。我試圖在arangodb主線安裝foxx應用程序。
我遵循以下步驟:
1. arangosh創建新的數據庫「db._createDatabase(‘數據庫名稱’)」
2.運行命令「福克斯經理--server.database‘’取目錄「
3.然後運行命令‘福克斯經理--server.database‘’安裝’安裝arangodb foxx應用程序失敗

但是,當我看着它給下面的錯誤

2014-11-23T04日誌:08 :44Z [2584]錯誤無法計算Foxx應用程序路由:[ArangoError 1924:graph not發現]
2014-11-23T04:08:44Z [2584]錯誤無法安裝Foxx應用程序'app:contactspace:1.0':錯誤:無法計算Foxx應用程序'app:contactspace:1.0'的路由表,檢查日誌文件錯誤!\ n在Object.exports.appRoutes(/usr/share/arangodb/js/server/modules/org/arangodb/foxx/manager.js:1525:15)\n在Object.reloadRouting(/ usr /share/arangodb/js/server/modules/org/arangodb/actions.js:1241:38)\n在全局環境下方法:1:33 \ n

我無法理解此錯誤的原因。安裝腳本在安裝後運行良好,但安裝本身發生錯誤。

foxx應用程序在arangodb dev實例的情況下工作正常。

here其他信息:

是我創建只有一個邊緣清晰度一般的圖形。下面是該

// load modules 
var graph_module = require("org/arangodb/general-graph"); 

// create graph if does not already exists 
var graph = null; 
if(!graph_module._exists("sampleGraph")) { 
    var containsXRelation = graph_module._directedRelation("containsX", ["X"], ["X"]); 
    var edgeDefinitions = graph_module._edgeDefinitions(containsXRelation); 
    graph = graph_module._create("sampleGraph", edgeDefinitions); 
} 
else { 
    graph = graph_module._graph("sampleGraph"); 
} 

的setup.js他們喜歡創造一些更多的東西指數的...

另外,我有控制器的動作以外的一些圖形相關的代碼:

var sampleGraph = graph_module._graph("sampleGraph"); 
var vertex = contactSpaceGraph._getVertexCollectionByName("contactX"); 
var edge = contactSpaceGraph._getEdgeCollectionByName("X"); 

回答

3

什麼你正在做的是我會做的,以及有幾個小錯誤會導致錯誤:

  • 你wr OTE contactX代替containsX控制器
  • 你在你的控制器切換頂點集合和邊集合的名稱(getVertexCollectionByName應該接收X,getEdgeCollectionByName應該接受containsX)

如果改變這些東西,你很好去:)只是在本地嘗試。

小小評論: 在Foxx中,這個想法是每個集合名都帶有一些關於掛載點信息的前綴。原因是你應該能夠多次安裝一個Foxx應用程序而不會發生衝突 - 也有多個應用程序可能有一個集合'x',並期望在那裏存儲不同的東西。這就是爲什麼我們有applicationContext.collectionName :)我建議在你命名圖形相關集合時使用它。如果你想看看它是如何工作的,我將你的片段轉換成一個簡單的示例應用程序。這裏是它的要點:

https://gist.github.com/moonglum/21208befa3ce6227559d