Node.js Neo4j-Neo4jError:服务器已关闭连接

Node.js Neo4j-Neo4jError:服务器已关闭连接,node.js,google-cloud-platform,neo4j,virtual-machine,neo4j-driver,Node.js,Google Cloud Platform,Neo4j,Virtual Machine,Neo4j Driver,我按照以下说明创建了一个带有neo4j的google cloud VM实例: 浏览器数据库看起来不错:我可以在浏览器中查看和操作 问题是当尝试使用neo4j驱动程序npm从NodeJ连接neo4j时 我不断地发现这个错误: 未经处理的PromisejectionWarning:Neo4jError:服务器已关闭连接 代码如下: const neo4j = require('neo4j-driver') const uri = 'bolt://[EXTERNAL_IP]:[PORT]' cons

我按照以下说明创建了一个带有neo4j的google cloud VM实例:

浏览器数据库看起来不错:我可以在浏览器中查看和操作

问题是当尝试使用neo4j驱动程序npm从NodeJ连接neo4j时

我不断地发现这个错误:

未经处理的PromisejectionWarning:Neo4jError:服务器已关闭连接

代码如下:

const neo4j = require('neo4j-driver')
const uri = 'bolt://[EXTERNAL_IP]:[PORT]'
const user = 'USER_NAME'
const password = 'PASSWORD'

const createPerson = async () => {
const driver = neo4j.driver(uri, neo4j.auth.basic(user, password), { encrypted : "ENCRYPTION_OFF"})
const session = driver.session()
const personName = 'Bob'
    try {
        const result = await session.run(
          'CREATE (a:Person {name: $name}) RETURN a',
          { name: personName }
        )

    const singleRecord = result.records[0]
    const node = singleRecord.get(0)

    console.log(node.properties.name)
  } finally {
    await session.close()
  }

  // on application exit:
  await driver.close()
}

createPerson()
代码取自此链接:

我在gcpshell中运行以下命令:
gcloudcomputessh my-neo4j-instance
,希望添加ssh可以解决这个问题,但是没有

将驱动程序加密选项更改为false也无济于事

控制台记录错误并打印以下内容:

Neo4jError: Connection was closed by server

at captureStacktrace (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\node_modules\neo4j-driver\lib\result.js:263:15)
at new Result (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\node_modules\neo4j-driver\lib\result.js:68:19)
at Session._run (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\node_modules\neo4j-driver\lib\session.js:174:14)
at Session.run (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\node_modules\neo4j-driver\lib\session.js:135:19)
at createPerson (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\src\index.js:12:38)
at Object.<anonymous> (C:\Users\user\Desktop\Home Work\MyProject\LotteryService\src\index.js:31:1)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14) {


code: 'ServiceUnavailable',
  name: 'Neo4jError'
我试过这个:

(async() => {
console.log('before start');

await createPerson();

console.log('after start');
})();
仍然不好,仍然:Neo4jError:连接已被服务器关闭。 我也在neo4j博客上问过,但没有得到答案

编辑2:

我在另一个堆栈溢出帖子中看到了我的问题。答案是通过更改密码来完成对neo4j的登录。但我已经做到了。。。
我也加入了neo4j slack小组,但仍然没有得到答案。

你检查防火墙了吗?测试加密吗?正确的授权?Bolt+routing?@MichaelHunger对于防火墙,http和https流量都是允许的。加密设置为-谷歌管理,我如何测试它?我没有设置任何身份验证,我使用的uri是使用bolt协议生成的neo4j。完整免责声明这是我第一次处理google cloud VMHTTP服务器或https服务器标记,如果您的虚拟机在虚拟机中,则只允许通信到端口80和443。根据需要,您可能需要打开特定的端口(即747473),您可以按照说明创建它们。您还可以运行端口扫描,如nmap,以扫描您的所有端口。
(async() => {
console.log('before start');

await createPerson();

console.log('after start');
})();