Integrates Knex with Nest
npm install nestjs-knex knex You can also use the interactive CLI
npm install nestjs-knex knex sqlite3 KnexModule.forRoot(options, connection?) import { Module } from '@nestjs/common' ; import { KnexModule } from 'nestjs-knex' ; import { AppController } from './app.controller' ; @Module ( { imports :[ KnexModule . forRoot ( { config :{ client :"sqlite3" , useNullAsDefault :true , connection :':memory:' , } , } ) , ] , controllers :[ AppController ] , } ) export class AppModule { } KnexModule.forRootAsync(options, connection?) import { Module } from '@nestjs/common' ; import { KnexModule } from 'nestjs-knex' ; import { AppController } from './app.controller' ; @Module ( { imports :[ KnexModule . forRootAsync ( { useFactory :( ) => ( { config :{ client :"sqlite3" , useNullAsDefault :true , connection :':memory:' , } , } ) , } ) , ] , controllers :[ AppController ] , } ) export class AppModule { } import { Controller , Get , } from '@nestjs/common' ; import { InjectKnex , Knex } from 'nestjs-knex' ; @Controller ( ) export class AppController { constructor ( @InjectKnex ( ) private readonly knex :Knex , ) { } @Get ( ) async getHello ( ) { if ( ! await this . knex . schema . hasTable ( 'users' ) ) { await this . knex . schema . createTable ( 'users' , table => { table . increments ( 'id' ) . primary ( ) ; table . string ( 'name' ) ; } ) ; } await this . knex . table ( 'users' ) . insert ( { name :'Name' } ) ; const users = await this . knex . table ( 'users' ) ; return { users} ; } } MIT