2

次の手順に従って、neo4j を搭載した Google クラウド VM インスタンスを作成しました

ブラウザ Db は問題ないようです。ブラウザから表示および操作できます。

問題は、neo4j-driver npm を使用して nodejs から neo4j を接続しようとしたときです。

このエラーが発生し続けます:

UnhandledPromiseRejectionWarning: 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()

コードは次のリンクから取得されます: https://neo4j.com/developer/javascript/

このコマンドを実行gcloud compute ssh my-neo4j-instanceします。GCP シェルで、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'

私は何が欠けていますか?

編集1:

Googleクラウドのログを見ました。私が見たのは、VM の開始と停止のログだけでした。

また、メイン ファイルの async 関数呼び出しのコードを修正しました。その代わりに

 createPerson();

私はこれを試しました:

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

await createPerson();

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

まだダメ、まだ: Neo4jError: 接続がサーバーによって閉じられました。また、neo4j ブログでも質問しましたが、回答がありませんでした。

編集2:

別のスタック オーバーフローの投稿で問題を確認しました。そこにあった答えは、パスワードを変更して、neo4j へのロギングを終了することでした。しかし、私はすでにそれをしました... また、neo4j slack グループに参加しましたが、まだ回答が得られませんでした。

4

0 に答える 0