我正在尝试运行自定义Foxx应用程序。
目录结构:
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”显示在测试数据库的应用程序列表中。
答案 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。关闭浏览器或清除其缓存可能会解决此问题。