1

我目前正在将我的 Foxx 应用程序设置为 GraphQL API 端点,我需要从浏览器和 Node 后端连接到它。我正在考虑为我的后端安装一个arango.clientnpm 包,但它似乎只支持 HTTP。一次(在 Node 中)创建一个 TCP 连接桥并以更低的延迟和更少的开销与它通信不是更好吗?我知道 ArangoDB 支持 TCP,但为什么没有实现它arango.client

4

1 回答 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 回答