Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dilane3/neo4j-module
This module provides Neo4j integration for Nestjs.
https://github.com/dilane3/neo4j-module
Last synced: 7 days ago
JSON representation
This module provides Neo4j integration for Nestjs.
- Host: GitHub
- URL: https://github.com/dilane3/neo4j-module
- Owner: dilane3
- License: mit
- Created: 2022-10-18T02:58:37.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-20T15:56:06.000Z (about 2 years ago)
- Last Synced: 2024-10-19T22:08:18.892Z (27 days ago)
- Language: TypeScript
- Size: 102 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Neo4j Module
> Neo4j integration for Nest Application
## Description
This module provides [Neo4j](https://www.neo4j.com) integration for [Nest](http://nestjs.com/).
## Installation
```bash
$ npm install --save neo4j-module
```or
```bash
$ yarn add neo4j-module
```## Quick Start
We need to register our neo4j module in our root module which is AppModule in our case and call the forRootAsync method with the configuration object.
```typescript
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Neo4jModule } from 'neo4j-module';
import { Todo } from './entity/todo.entity';@Module({
imports: [
Neo4jModule.forRootAsync({
scheme: 'bolt',
host: 'localhost',
port: '7687',
username: 'neo4j',
password: 'ne04j',
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
```## Querying Neo4j
The `Neo4jService` is `@Injectable`, so it can be passed into any constructor. And for querying
you have to be familiar with the [cyper-query-builder](https://jamesfer.me/cypher-query-builder/index.html) module.Note that you have to inject the **Neo4jService** using the **@Inject()** decorator
```typescript
import { HttpException,
Inject } from '@nestjs/common';
import { Neo4jService } from 'neo4j-module';@Controller('todos')
export class AppController {
constructor(
@Inject(Neo4jService) private readonly neo4jService: Neo4jService,
) {}@Get('')
async getTodos() {
const query = this.neo4jService.initQuery();try {
const result = await query.matchNode('todo', 'Todo').return('todo').run();if (result && result.length > 0) {
const todos = result.map((todo) => {
const todoData = todo['todo'].properties;return new Todo(todoData);
});return todos;
}
} catch (err) {
throw new HttpException("Can't get Todos", 500);
}
}
}
```## Keywords
- nestjs
- neo4j
- cypher
- query-builder
- connection
- nosql database## License
Nest is [MIT licensed](LICENSE).