首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从节点访问EC2上的Neo4j

如何从节点访问EC2上的Neo4j
EN

Stack Overflow用户
提问于 2019-12-28 05:02:55
回答 2查看 130关注 0票数 2

我在一个EC2实例上设置了一个Neo4j数据库。我附加了一个域名并创建了一个证书,以便可以从https://my-domain-name:7473访问浏览器版本。在浏览器中,我可以创建节点并修改数据库。

现在,我希望能够从Node修改此数据库,但它不起作用。这就是我所拥有的:

代码语言:javascript
复制
const neo4j = require('neo4j-driver');
const driver = neo4j.driver('bolt://my-domain-name', neo4j.auth.basic('neo4j', 'instance-id-password'));
const session = driver.session();

session
    .run(`MATCH (n:User) RETURN n`)
    .then(function (result) {
        result.records.forEach(function (record) {
            console.log(record._fields[0].properties);
        });
    })
    .catch(function (err) {
        console.log('ERROR WITH NEO4J CALL');
        console.log(err);
    });

我得到的错误是

代码语言:javascript
复制
ERROR WITH NEO4J CALL
{ Neo4jError: Connection was closed by server

    at captureStacktrace (C:\Users\admin\Documents\TestingAWSServerlessExtension\test-node-neo4j\node_modules\neo4j-driver\lib\result.js:263:15)
    at new Result (C:\Users\admin\Documents\TestingAWSServerlessExtension\test-node-neo4j\node_modules\neo4j-driver\lib\result.js:68:19)
    at Session._run (C:\Users\admin\Documents\TestingAWSServerlessExtension\test-node-neo4j\node_modules\neo4j-driver\lib\session.js:172:14)
    at Session.run (C:\Users\admin\Documents\TestingAWSServerlessExtension\test-node-neo4j\node_modules\neo4j-driver\lib\session.js:135:19)
    at Object.<anonymous> (C:\Users\admin\Documents\TestingAWSServerlessExtension\test-node-neo4j\index.js:7:6)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3) code: 'ServiceUnavailable', name: 'Neo4jError' }

我知道cypher查询是有效的,因为当我运行同样的代码将my-domain-name替换为localhost时,我得到了预期的输出。所以我不能访问我的Neo4j数据库,除非我在本地托管它。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 05:01:45

我最终将bolt.tls_level更改为OPTIONAL,并且我能够连接到我的数据库。这可能意味着我的Javascript代码没有创建到我的数据库的加密连接,这是我应该研究的东西。

票数 0
EN

Stack Overflow用户

发布于 2020-01-04 11:03:24

看起来有什么东西切断了连接,这可能是证书安全问题(如果证书不能识别/服务于螺栓驱动程序)或网络问题(EC2上的一些设置)。

是否将bolt.ssl_policy的配置设置设置为与https.ssl_policy相同的策略?如果不是,则进行更改并重新启动图形,这样可能会起作用。

您是否在与图形相同的服务器上运行node?如果bolt地址是0.0.0.0,您可以尝试使用'bolt://localhost‘而不是my domain来跳过一些(潜在的)网络问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59505998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档