我正在学习更多关于ArangoDB和它的Foxx框架.但是我不清楚通过使用该框架构建我自己的独立nodejs应用程序来获取API /访问控制,逻辑等,我获得了什么.
Foxx提供的常规nodejs应用程序不会提供什么?
我想知道Foxx/ArangoDB是否支持Socket.io?或者,如果我想使用sockets.io,我是否必须启动一个单独的Express.js服务器?
我想知道如何在服务器/ IP /域名的根目录下设置Foxx应用程序?
例如,如果我的IP是,100.12.32.12 如果我去http://100.12.32.12它将打开没有URL重定向的单页foxx应用程序.
我试过的事情
目前我让Arangodb使用tcp://0.0.0.0:80端点,所以我得到了端口工作.
我还在index.html我的应用程序中设置了一个文件manifest.json并将该应用程序安装到/
但是目前http://100.12.32.12 我将重定向到http://107.170.131.61/_db/_system/index.html哪个有效,但URL已更改.
也http://100.12.32.12/index.html有效,但我想知道是否可以http://100.12.32.12在没有重定向的情况下显示应用程序.
我尝试过,sudo arangod --javascript.app-path /path/to/app但似乎没有用.
谢谢.我是Arangodb和Foxx的新手.
为什么新的JavaScript模块请求同步?它应该只用在作业队列中吗?
有没有办法在ArangoDB中发出异步http(s)请求?
我正在开发一款应用程序,它将极大地受益于 Arangos 的多模型功能。考虑到应用程序对后端的需求,我得出的结论是,大多数(如果不是全部)都可以通过 REST API 提供服务,以帮助更清晰的设计,以便将来的开发和与其他应用程序的集成。然后,多个 Web 和移动前端框架将使用该 API 来处理其余逻辑。该项目将使用 NodeJS 生态系统,使用 Javascript 进行整个堆栈的开发。
。
问题本身:
是否应该并且可以使用 arangodb + Foxx 创建完整的后端堆栈来服务 REST API,从而避免堆栈中的另一层/组件?例如express/hapi/loopback等。
。
主要后端要求:
。
主要寻找:
。
附带问题(可能回答上面的一些问题):Foxx 可以利用一些通过 npm 提供的节点中间件吗?
在此先感谢您的时间!
ArangoDB 文档(Foxx 部分)说:
由于 Foxx 直接在 ArangoDB 内部运行,因此您可以将处理请求所需的所有数据库查询和逻辑捆绑在一个位置。
除了使用“Foxx 框架”之外,还有其他“更原生”的方法来实现与 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;
Run Code Online (Sandbox Code Playgroud)
我按照 Foxx 食谱做了这个,但它总是给我一个错误:
[ArangoError 3103:无法调用模块文件:c:/Program Files/ArangoDB 2.6.2/var/lib/arangodb-apps/_db/_system/exameFacil/APP/controllers/clinics.js]
[Arango错误 3103:无法调用模块文件:c:/Program Files/ArangoDB 2.6.2/var/lib/arangodb-apps/_db/_system/exameFacil/APP/controllers/clinics.js] 在 [object Object].Module.run (C:\Program Files\ArangoDB 2.6.2\bin../share/arangodb/js/common/bootstrap/modules.js:1420:20) 在 ArangoApp.loadAppScript (c:/Program Files/ArangoDB 2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/arangoApp.js:452:24) 在 mountController (c:/Program Files/ArangoDB 2.6.2/share/arangodb/js/server/modules/org/arangodb/foxx/routing.js:661:7) …
我的Foxx应用程序中有这样的代码:
db._query(aqlQuery`
FOR d IN FULLTEXT('api_texts', '${args.attribute}', '${args.search}')
SORT d.${args.sort_by} ${args.sort}
LIMIT ${args.skip}, ${args.limit}
RETURN d
`).toArray()
Run Code Online (Sandbox Code Playgroud)
它似乎是正确的但由于某种原因它给了我一个错误bind parameter 'value1' was not declared in the query (while parsing).
我试图在arangosh...中运行它同样的错误:
arangosh [ilearn]> db._query({ "query" : "\n FOR d IN FULLTEXT('api_texts', '@value0', '@value1')\n SORT d.@value2 @value3\n LIMIT @value4, @value5\n RETURN d\n ", "bindVars" : { "value0" : "title_en", "value1" : "1", "value2" : "created_at", "value3" : "ASC", "value4" : 0, "value5" : 10 } })
JavaScript exception in …Run Code Online (Sandbox Code Playgroud)