Как подключить Nest. js и NEo4j - PullRequest
1 голос
/ 22 января 2020

Я новичок в Neo4j и хочу, чтобы он соединялся с Nest. js, я использую neo4j версии 3.5.12 и следую учебному пособию. Я соединяю Nest. js и Neo4j с помощью Graphql, но мы не можем получить результат и показать некоторые JSON типа, а также я пытаюсь без использования Graphql, но GET и POST не работали.

Это мой контроллер

import { Controller, Get } from '@nestjs/common';

import {Neo4jService} from './neo4j.service';

@Controller('neo4j')
export class Neo4jController {
    constructor (private readonly retriveNodes: Neo4jService){}
@Get()
 async findAll() {
    console.log('retriving nodes as per given query in findAll() method. ');

 //return'Welcome To All';
 return this.retriveNodes.findAll();
 }
}

Служба

import { Injectable, Inject } from '@nestjs/common';
import * as v1 from 'neo4j-driver';
@Injectable()
export class Neo4jService {
 constructor(@Inject("Neo4j") private readonly neo4j: v1.Driver) {}
async findAll(): Promise<any> {
 return this.neo4j.session().run('MATCH (n:Movie) RETURN n LIMIT 5');
 }
}

Используя это, я получаю результат в форме JSON.

ВЫХОД

{
  "records": [
    {
      "keys": [
        "n"
      ],
      "length": 1,
      "_fields": [
        {
          "identity": {
            "low": 0,
            "high": 0
          },
          "labels": [
            "Movie"
          ],
          "properties": {
            "title": "The Martix",
            "year": {
              "low": 1999,
              "high": 0
            },
            "id": "82999192-ae57-406e-8c19-d7753d0d5748"
          }
        }
      ],
      "_fieldLookup": {
        "n": 0
      }
    },
    {
      "keys": [
        "n"
      ],
      "length": 1,
      "_fields": [
        {
          "identity": {
            "low": 1,
            "high": 0
          },
          "labels": [
            "Movie"
          ],
          "properties": {
            "title": "A Few Good Men",
            "year": {
              "low": 1992,
              "high": 0
            },
            "id": "c52c721c-c410-45a2-8d2e-824caa51847a"
          }
        }
      ],
      "_fieldLookup": {
        "n": 0
      }
    },
    {
      "keys": [
        "n"
      ],
      "length": 1,
      "_fields": [
        {
          "identity": {
            "low": 2,
            "high": 0
          },
          "labels": [
            "Movie"
          ],
          "properties": {
            "title": "Top Gun",
            "year": {
              "low": 1986,
              "high": 0
            },
            "id": "d121663a-597f-4963-8acc-c68021bee860"
          }
        }
      ],
      "_fieldLookup": {
        "n": 0
      }
    },
    {
      "keys": [
        "n"
      ],
      "length": 1,
      "_fields": [
        {
          "identity": {
            "low": 17,
            "high": 0
          },
          "labels": [
            "Movie"
          ],
          "properties": {
            "title": "The Martix",
            "year": {
              "low": 1999,
              "high": 0
            },
            "id": "453941ca-c309-419b-8cad-41d150e06b2a"
          }
        }
      ],
      "_fieldLookup": {
        "n": 0
      }
    },
    {
      "keys": [
        "n"
      ],
      "length": 1,
      "_fields": [
        {
          "identity": {
            "low": 18,
            "high": 0
          },
          "labels": [
            "Movie"
          ],
          "properties": {
            "title": "A Few Good Men",
            "year": {
              "low": 1992,
              "high": 0
            },
            "id": "79fc529c-bfd1-4f7d-9bae-7f00b6d7d540"
          }
        }
      ],
      "_fieldLookup": {
        "n": 0
      }
    }
  ],
  "summary": {
    "query": {
      "text": "MATCH (n:Movie) RETURN n LIMIT 5",
      "parameters": {

      }
    },
    "queryType": "r",
    "counters": {
      "_stats": {
        "nodesCreated": 0,
        "nodesDeleted": 0,
        "relationshipsCreated": 0,
        "relationshipsDeleted": 0,
        "propertiesSet": 0,
        "labelsAdded": 0,
        "labelsRemoved": 0,
        "indexesAdded": 0,
        "indexesRemoved": 0,
        "constraintsAdded": 0,
        "constraintsRemoved": 0
      },
      "_systemUpdates": 0
    },
    "updateStatistics": {
      "_stats": {
        "nodesCreated": 0,
        "nodesDeleted": 0,
        "relationshipsCreated": 0,
        "relationshipsDeleted": 0,
        "propertiesSet": 0,
        "labelsAdded": 0,
        "labelsRemoved": 0,
        "indexesAdded": 0,
        "indexesRemoved": 0,
        "constraintsAdded": 0,
        "constraintsRemoved": 0
      },
      "_systemUpdates": 0
    },
    "plan": false,
    "profile": false,
    "notifications": [

    ],
    "server": {
      "address": "localhost:7687",
      "version": "Neo4j/3.5.12"
    },
    "resultConsumedAfter": {
      "low": 191,
      "high": 0
    },
    "resultAvailableAfter": {
      "low": 437,
      "high": 0
    },
    "database": {
      "name": null
    }
  }
}

Я хочу и .run, и .then, но здесь только .run показывает. Нет sugection is показывая я хочу поле, свойства и идентификатор в коде выше.

...