0

我遵循 Cayley 文档中的“入门”指南,并在我的远程服务器上安装了 Cayley:

入门:https ://github.com/google/cayley

服务器操作系统:CentOS 7.2.1511

我已将 cayley 添加到我的 $PATH 中:

echo $PATH

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/csse/cayley/src/github.com/google/cayley

这是我的配置文件/etc/cayley.cfg

{
  "database": "leveldb",
  "db_options": {
    "cache_size_mb": 2,
    "write_buffer_mb": 20
  },
  "db_path": "~/cayley/src/github.com/google/cayley/data/testdata.nq",
  "listen_host": "127.0.0.1",
  "listen_port": "64210",
  "read_only": false,
  "replication_options": {
    "ignore_missing": false,
    "ignore_duplicate": false
  },
  "timeout": 30
}

我只需执行以下操作即可通过 http 为 cayley 服务:

cayley http

和终端输出:

Cayley 现在正在收听 127.0.0.1:64210

在我的主机(Mac OSX 10.10.5 Yosemite)上,我使用 npm 安装cayley包并编写了一个测试:

##testconnection.js

var cayley = require('cayley');

var client = cayley("137.112.104.107");

var g = client.graph;

g.V().All(function(err, result) {
    if(err) {
        console.log('error');
   } else {
        console.log('result');
   }
});

但是,当我运行它时它失败了:node testconnection.js

错误:错误:无效的 URI “137.112.104.107/api/v1/query/gremlin”

我想连接到 Cayley 并从我的测试中修改数据库。我找到了一个很好的幻灯片,里面有很多 Cayley 的信息:

https://docs.google.com/presentation/d/1tCbsYym1kXWWDcnRU9ymj6xP0Nvgq-Qhy9WDmqWcM-o/edit#slide=id.g3776708f1_0319

以及相关的 Cayley 文档:

还有一个关于stackoverflow的帖子:

但是我正在努力想出一种将 Cayley(在我的远程机器上)与我的本地机器连接起来的方法。如果可能,我想与 npm 联系,但我愿意接受其他选择。我哪里错了?

编辑#1

我已将“http://”附加到我的 ip,所以现在它显示为http://137.112.104.107. 那时,我通过执行解决了另一个问题

cayley init --config=/etc/cayley.cfg 正如作者在这里提到的

我还从我的配置文件中删除了listen_postand listen_port(首先分别删除,然后是两者),但仍然有相同的socket hang up错误。client这是测试脚本的打印输出:

Client {
    host: 'http://137.112.104.107',
    request:
        { [Function]
        get: [Function],
        head: [Function],
        post: [Function],
        put: [Function],
        patch: [Function],
        del: [Function],
        cookie: [Function],
        jar: [Function],
        defaults: [Function] },
    graph: Gremlin { client: [Circular], query: [Function] },
    g: Gremlin { client: [Circular], query: [Function] },
    write: [Function: bound ],
    delete: [Function: bound ],
    writeFile: [Function: bound ]
}
4

1 回答 1

0

您的 Cayley 服务器正在侦听 127.0.0.1 / localhost,因此无法从另一台机器访问。为了能够从虚拟机或网络上的另一台计算机访问它,它需要绑定到一个可访问的接口。

如果您配置主机:0.0.0.0 并检查您的网络 IP(我假设:137.112.104.107)并连接它,它应该可以工作,或者您需要打开它或转发防火墙上的端口(取决于您的网络)。

于 2017-02-14T09:03:39.663 回答