Проблема с репозиториями ArangoDB / FOXX

Я пытаюсь выполнить собственный запрос в репозиторий в приложении FOXX в ArangoDB:

        /*clinics.js */  

         'use strict'; 

    var Foxx = require('org/arangodb/foxx');

            var ClinicsRepository = Foxx.Repository.extend({   
// Add your custom methods here

              //Returns all procedures from a clinic, given the clinic id 
getAllProcedures: Foxx.createQuery({
                    query: 'FOR clinic IN exameFacil_clinics FILTER clinic._key == [@id] RETURN clinic.procedures',

                    params: ['id']

                })
 });

            exports.repository = ClinicsRepository;

Я сделал это, следуя кулинарной книге Foxx, но всегда выдает ошибку:

[ArangoError 3103: failed to invoke module File: c:/Program Files/ArangoDB 2.6.2/var/lib/arangodb-apps/_db/_system/exameFacil/APP/controllers/clinics.js]

[ArangoError
3103: failed to invoke module File: c:/Program Files/ArangoDB
2.6.2/var/lib/arangodb-apps/_db/_system/exameFacil/APP/controllers/clinics.js]
at [object Object].Module.run (C:\Program Files\ArangoDB
2.6.2\bin../share/arangodb/js/common/bootstrap/modules.js:1420:20)   at ArangoApp.loadAppScript (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/arangoApp.js:452:24)
at mountController (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:661:7)
at c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:630:9
at Array.forEach (native)   at routeApp (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:629:32)
at Object.routes (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/manager.js:268:10)
at foxxRouting (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/actions.js:1054:74)
at execute (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/actions.js:1308:7)   at Object.routeRequest (c:/Program Files/ArangoDB
2.6.2/share/arangodb/js/server/modules/org/arangodb/actions.js:1329:3)   at Function.actions.defineHttp.callback (c:\Program Files\ArangoDB
2.6.2\share\arangodb\js\actions\api-system.js:58:15) 

Эта ошибка возникает каждый раз, когда я пытаюсь «потребовать» файл Clinics.js. Какие-либо предложения? Спасибо!


person Pavarine    schedule 30.07.2015    source источник


Ответы (1)


Вы можете попробовать изменить строчку

exports.repository = ClinicsRepository;

to

module.exports = ClinicsRepository;

Тогда ошибка должна исчезнуть.

Кроме того, может потребоваться изменить фильтр в запросе AQL с

FILTER clinic._key == [@id]

to

FILTER clinic._key == @id

or

FILTER clinic._key IN @id

чтобы найти документ, в зависимости от того, хотите ли вы найти отдельный документ или массив документов.

person stj    schedule 30.07.2015