Nest Neo4j
Neo4j integration for Nest.js
Description
This repository provides Neo4j integration for Nest.
Installation
$ npm i --save neo-for-nest
Quick Start
Register the Neo4j Module in your application using the forRoot
method, passing the neo4j connection information as an object:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Neo4jModule, Neo4jModule } from 'neo-for-nest'
@Module({
imports: [
Neo4jModule.forRootAsync({
imports: [ConfigModule],
useFactory: () => {
return {
inject: [ConfigService],
scheme: 'neo4j',
host: 'localhost',
port: 7687,
username: 'neo4j',
password: 'neo4j',
//password: 'l1Ohm2LXEKWb0pKzKWWhLSO-lKfBu0s5kOBvdxIaq00',
} as Neo4jConfig;
},
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Querying Neo4j
The neo-for-nest
is @Injectable
, so can be passed into any constructor:
import { Neo4jService } from 'neo-for-nest'
@Controller()
export class AppController {
constructor(private readonly appService: AppService,
private readonly neo4jService: Neo4jService
) {}
@Get()
async getHello(): Promise<any> {
const res = await this.neo4jService.read(`MATCH (n) RETURN count(n) AS count`)
return `There are ${res.records[0].get('count')} nodes in the database`
}
}
Methods
getConfig(): Neo4jConfig;
getReadSession(database?: string): Session;
getWriteSession(database?: string): Session;
read(query: string, params?: object, database?: string): Result;
write(query: string, params?: object, database?: string): Result;
Thanks
https://github.com/adam-cowley/nest-neo4j