Foxx应用程序返回404

时间:2014-08-30 06:02:12

标签: arangodb

我正在尝试运行自定义Foxx应用程序。

目录结构:

  • 〜/ SRC / JS /福克斯
    • 数据库
      • _SYSTEM
        • my_app(来自文档)
      • 测试
        • myapp(我的自定义应用)
          • 的manifest.json
          • app.js

myapp manifest.json

{
  "name": "myapp",
    "version": "0.0.1",
    "author": "ccraig",
    "controllers": {
      "/": "app.js"
    }
}

myapp app.js

(function() {
 "use strict";

 var Foxx = require("org/arangodb/foxx"),
 controller = new Foxx.Controller(applicationContext);


 controller.get("/", function(req, res) {
   res.set("Content-Type", "text/plain");
   res.body = "Hello world";
   });

}());

启动服务器的命令

arangod --javascript.dev-app-path ~/src/js/foxx ~/tmp/arango_db

然后我将浏览器指向:

http://localhost:8529/_db/test/dev/myapp/

并收到此回复:

{"error":true,"code":404,"errorNum":404,"errorMessage":"unknown path 'dev/myapp/index.html'"}

我从_system(my_app)下的文档复制的示例应用程序对我来说很合适。

我也能够运行aardvark管理员,这就是我创建“测试”数据库的方式。我注意到,它在其图标上显示“不活动”,而_system表示“活跃”,不确定这是否相关。

此外,在管理员中,“myapp”显示在测试数据库的应用程序列表中。

1 个答案:

答案 0 :(得分:2)

404的原因是默认情况下对应用程序根目录的调用被重定向到“index.html”。如果“index.html”在应用程序中没有定义的路线,则会引发404。

可以通过将 defaultDocument 属性添加到manifest.json文件来修复它,如下所示:

{
  "name": "myapp",
  "version": "0.0.1",
  "author": "ccraig",
  "controllers": {
    "/": "app.js"
  },
  "defaultDocument" : ""
}

顺便说一下,我在手册中找到了这个:http://docs.arangodb.org/Foxx/HandlingRequest.html

请注意,即使在更改清单文件后,您的浏览器也可能已缓存重定向,因此它可能会将您路由到index.html。关闭浏览器或清除其缓存可能会解决此问题。