我目前正在将我的Foxx应用程序设置为GraphQL API端点,我需要从浏览器和Node后端连接到它。有一个arango.client
npm包,我想为我的后端安装,但它似乎只支持HTTP。创建一个TCP连接桥(在Node中)并以更低的延迟和更少的开销与之通信会不会更好?我知道ArangoDB支持TCP,但为什么它没有在arango.client
中实现?
答案 0 :(得分:1)
目前ArangoDB仅将HTTP实现为传输端点。
不可挽回的来源可能是指定服务器连接的 arangosh 命令行参数如下所示:
--server.endpoint tcp://127.0.0.1:8529
但那里说的协议是HTTP。
绕过TCP堆栈的一步可能是use unix domain sockets用于HTTP通信。您可以使用Raw routes与Foxx服务进行通信:
var db = require('arangojs')();
var myFoxxService = db.route('my-foxx-service');
myFoxxService.post('users', {
username: 'admin',
password: 'hunter2'
})
.then(response => {
// response.body is the result of
// POST /_db/_system/my-foxx-service/users
// with JSON request body '{"username": "admin", "password": "hunter2"}'
});
ArangoDB 3.0将带来velocypack以及稍后的原始tcp协议1到副业HTTP。 Foxx也计划为此提供支持。
虽然arangojs目前是纯粹的js实现,但我们计划在未来使用类似的API提供本机后端。因此,如果你想从中受益,你现在应该选择ArangoJS。