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