我目前正在将我的 Foxx 应用程序设置为 GraphQL API 端点,我需要从浏览器和 Node 后端连接到它。我正在考虑为我的后端安装一个arango.client
npm 包,但它似乎只支持 HTTP。一次(在 Node 中)创建一个 TCP 连接桥并以更低的延迟和更少的开销与它通信不是更好吗?我知道 ArangoDB 支持 TCP,但为什么没有实现它arango.client
?
问问题
119 次
1 回答
1
目前 ArangoDB 仅将 HTTP 实现为传输端点。
错误的来源可能是为服务器连接指定arangosh命令行参数,如下所示:
--server.endpoint tcp://127.0.0.1:8529
但是那里所说的协议是HTTP。
绕过 TCP 堆栈的一个步骤是使用 unix 域套接字进行 HTTP 通信。您可以使用原始路由与 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 协议带入辅助 HTTP。Foxx 支持也计划用于此。
虽然 arangojs 目前是一个纯 js 实现,但我们计划在未来提供一个类似 API 下的原生后端。因此,如果您想从中受益,您现在应该使用 ArangoJS。
于 2016-02-18T13:18:04.433 回答