2014-08-30 2 views
2

J'essaie d'exécuter une application Foxx personnalisée.L'application Foxx renvoie 404

Structure du répertoire:

  • ~/src/js/foxx
    • bases de données
      • _SYSTEM
        • my_app (A partir de la documentation)
      • tests
        • monapp (Mon application personnalisée)
          • manifest.json
          • app.js

monapp manifest.json

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

monapp 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"; 
    }); 

}()); 
commande

pour démarrer le serveur

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

Je signale alors que mon navigateur:

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

et de recevoir cette réponse:

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

L'exemple d'application que j'ai copié à partir des docs sous _system (my_app) fonctionne très bien pour moi.

Je suis également capable d'exécuter l'admin aardvark, c'est ainsi que j'ai créé la base de données "test". Je remarque, cependant, qu'il dit "inactif" sur son icône, tandis que _system dit "actif", je ne sais pas si c'est pertinent.

De plus, dans l'admin, "myapp" apparaît dans la liste des applications de la base de données de test.

Répondre

2

La raison pour le 404 est que par défaut un appel à la racine de l'application est redirigé vers "index.html". Si "index.html" n'est pas une route définie dans l'application, alors le 404 sera augmenté.

Il peut être résolu en ajoutant l'defaultDocument attribut au fichier manifest.json comme ceci:

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

Btw J'ai trouvé dans le manuel: http://docs.arangodb.org/Foxx/HandlingRequest.html

S'il vous plaît noter que même après avoir changé votre fichier manifeste votre navigateur peut avoir mis en cache la redirection, il peut donc vous diriger vers index.html. Fermer le navigateur ou effacer son cache pourrait résoudre ce problème.

+0

Merci! Je l'avais en fait, mais je pensais que c'était spécifique à l'exemple qu'ils donnaient, c'est pourquoi je l'ai supprimé. Merci pour le lien vers les docs aussi et oui j'ai dû effacer le cache. Un changement + rechargement ne l'a pas coupé! – ccraig