简体   繁体   English

ArangoDB / FOXX存储库问题

[英]ArangoDB/FOXX repositories issue

I'm trying a custom query in a repository on a FOXX app in ArangoDB: 我正在ArangoDB中的FOXX应用程序的存储库中尝试自定义查询:

        /*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;

I did this following the Foxx cookbook, but it always gives me an error: 我按照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:无法调用模块文件:c:/ Program Files / ArangoDB 2.6.2 / var / lib / arangodb-apps / _db / _system / exameFacil / APP / controllers / clinics.js]

 [ArangoError [ArangoError\n3103: failed to invoke module File: c:/Program Files/ArangoDB 3103:无法调用模块文件:c:/ Program Files / ArangoDB\n2.6.2/var/lib/arangodb-apps/_db/_system/exameFacil/APP/controllers/clinics.js] 2.6.2的/ var / lib中/ arangodb-应用/ _db / _SYSTEM / exameFacil / APP /控制器/ clinics.js]\nat [object Object].Module.run (C:\\Program Files\\ArangoDB at [object Object] .Module.run(C:\\ Program Files \\ ArangoDB\n2.6.2\\bin../share/arangodb/js/common/bootstrap/modules.js:1420:20) at ArangoApp.loadAppScript (c:/Program Files/ArangoDB 在ArangoApp.loadAppScript(c:/ Program Files / ArangoDB)2.6.2 \\ bin ../ share / arangodb / js / common / bootstrap / modules.js:1420:20)\n2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/arangoApp.js:452:24) 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb /福克斯/ arangoApp.js:452:24)\nat mountController (c:/Program Files/ArangoDB 在mountController(c:/ Program Files / ArangoDB\n2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:661:7) 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb /福克斯/ routing.js:661:7)\nat c:/Program Files/ArangoDB 在c:/ Program Files / ArangoDB\n2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:630:9 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb /福克斯/ routing.js:630:9\nat Array.forEach (native) at routeApp (c:/Program Files/ArangoDB 位于routeApp的Array.forEach(native)(c:/ Program Files / ArangoDB\n2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:629:32) 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb /福克斯/ routing.js:629:32)\nat Object.routes (c:/Program Files/ArangoDB 在Object.routes(c:/ Program Files / ArangoDB\n2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/manager.js:268:10) 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb /福克斯/ manager.js:268:10)\nat foxxRouting (c:/Program Files/ArangoDB 在foxxRouting(c:/ Program Files / ArangoDB\n2.6.2/share/arangodb/js/server/modules/org/arangodb/actions.js:1054:74) 2.6.2 /共享/ arangodb / JS /服务器/模块/组织/ arangodb / actions.js:1054:74)\nat execute (c:/Program Files/ArangoDB 在执行时(c:/ Program Files / ArangoDB\n2.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:1308:7)在Object.routeRequest(c:/ Program Files / ArangoDB)\n2.6.2/share/arangodb/js/server/modules/org/arangodb/actions.js:1329:3) at Function.actions.defineHttp.callback (c:\\Program Files\\ArangoDB 在Password.actions.defineHttp.callback(c:\\ Program Files \\ ArangoDB)2.6.2 / share / arangodb / js / server / modules / org / arangodb / actions.js:1329:3)\n2.6.2\\share\\arangodb\\js\\actions\\api-system.js:58:15) 2.6.2 \\共享\\ arangodb \\ JS \\行动\\ API-system.js:58:15) 

This error occurs anytime I try to 'require' the clinics.js file. 每当我尝试“需要”clinics.js文件时,就会发生此错误。 Any suggestions? 有什么建议? Thank you! 谢谢!

Can you try changing the line 你能尝试换线吗?

exports.repository = ClinicsRepository;

to

module.exports = ClinicsRepository;

Then the error should go away. 然后错误应该消失。

Apart from that, the filter in the AQL query may need to be changed from 除此之外,可能需要更改AQL查询中的过滤器

FILTER clinic._key == [@id]

to

FILTER clinic._key == @id

or 要么

FILTER clinic._key IN @id

to actually find a document, depending on whether you want to find a single document or an array of documents. 实际查找文档,具体取决于您是要查找单个文档还是文档数组。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM