@enoviah/nest-mongo
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

Nest mongo module

The purpose of this module is to be used with nest rest api in order to initialize your
connection with mongoDb service

It can be use as an injector in your modules. It will only create 1 instance on mongo
 connection even if you import it in all of your modules

Installation

npm install @enoviah/nest-mongo

Configuration

In order to use the connection as provider, you will need to import the module into a nest module :

import { DatabaseModule } from '@enoviah/nest-mongo';

@Module({
  imports: [DatabaseModule],
  controllers: [HealthController],
  providers: [HealthService, ...healthProviders],
})
export class HealthModule {
}

After that, you can use DATABASE_CONNECTION where you need it. For instance, if you want to use this module with a mongoose schema :

// We provide HEALTH_MODEL in order to use it in our HealthService
// We tell the healthProvider that the mongo connection is handle by another provider (DATABASE_CONNECTION)
// So we inject it, and we can use the connection
export const healthProviders = [
  {
    provide: 'HEALTH_MODEL',
    useFactory: (connection: Connection) => connection.model('Health', HealthSchema),
    inject: ['DATABASE_CONNECTION'],
  },
];

Specific MongoDb address

By default, nest-mongo try to connect to

mongodb://localhost:27017

You can edit all of the uri by adding some environments variables defined as follow:

export const mongoConfig: MongoConfig = {
  MONGO_ADDRESS: process.env.MONGO_ADDRESS || '127.0.0.1',
  MONGO_DATABASE: process.env.MONGO_DATABASE || 'yourDb',
  MONGO_PASSWORD: process.env.MONGO_PASSWORD || '',
  MONGO_PORT: process.env.MONGO_PORT || 27017,
  MONGO_USER: process.env.MONGO_USER || '',
};

As you see, you can edit environments or edit mongoConfig manually before it is load

Warning: avoid as possible to edit mongoConfig directly. Prefer edit environment

Build & Usage

you can manually build & use this package without npm install. First step is to dpwnload this repo. Then, we install dependencies & run

npm run build

If you want yo use the build result as a local npm package, just run

npm link

Next, in your nest api, run:

npm link @enoviah/nest-mongo

and that's it

Readme

Keywords

Package Sidebar

Install

npm i @enoviah/nest-mongo

Weekly Downloads

1

Version

0.0.3

License

ISC

Unpacked Size

10.2 kB

Total Files

22

Last publish

Collaborators

  • maddoctor