@tresdoce/nestjs-database
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published
nestjs-database

NestJS - Mongo Database

Node.js Npm NestJs GitHub license
GitHub Workflow Status Codecov sonarcloud GitHub package.json version

Esta dependencia está pensada para ser utilizada en NestJs Starter, o cualquier proyecto que utilice una configuración centralizada, siguiendo la misma arquitectura del starter.

Glosario


📝 Requerimientos básicos

🛠️ Instalar dependencia

npm install @tresdoce/nestjs-database

⚙️ Configuración

Agregar los datos de conexión a mongo desde el configuration.ts utilizando el key database que contenga el objeto mongo que obtenga los datos desde las variables de entorno.

// ./src/config/configuration.ts
import { registerAs } from '@nestjs/config';

export default registerAs('config', () => {
  return {
    ...
    database: {
      mongo: {
        connection: process.env.MONGO_CONNECTION || 'mongodb',
        user: encodeURIComponent(process.env.MONGO_USER),
        password: encodeURIComponent(process.env.MONGO_PASSWORD),
        host: process.env.MONGO_HOST,
        port: parseInt(process.env.MONGO_PORT, 10),
        dbName: process.env.MONGO_DB_NAME,
      },
    },
    ...
  };
});
💬 Para ver en detalle todas las propiedades de la configuración, hace click acá.

connection: Es el protocolo de conexión a mongo.

  • Type: String
  • Values: mongodb | mongodb+srv

user: Es el nombre de usuario para conectarse a la base de datos mongo.

  • Type: String

password: Es la contraseña de usuario para conectarse a la base de datos mongo.

  • Type: String

host: Es el servidor para conectarse a la base de datos mongo.

  • Type: String
  • Values: localhost | 127.0.0.1 | <host mongo>

port: Es el puerto para conectarse a la base de datos mongo, no es obligatorio ponerlo.

  • Type: Number
  • Default: 27017

dbName: Es el nombre de la base de datos mongo.

  • Type: String

Una vez agregada la configuración, solo basta con importar el módulo en el archivo app.module.ts, y el módulo se encargará de obtener la configuración automaticamente.

// ./src/app.module.ts
import { MongoModule } from '@tresdoce/nestjs-database';

@Module({
    ...
    imports: [
      ...
      MongoModule,
      ...
    ],
    ...
})
export class AppModule {}

Para la inyección de Schemas se utiliza la propiedad forFeature del módulo enviando las entity como un array de objetos.

import {  Cat, CatSchema  } from './entities/cat.entity';

@module({
  imports:[
    ...
    MongoModule.forFeature([
      {
        name: Cat.name,
        schema: CatSchema
      }
    ])
    ...
  ],
  ...
})
export class CatsModule {}

💬 Para más información, podés consultar la documentación oficial de NestJs

📤 Commits

Para los mensajes de commits se toma como referencia conventional commits.

<type>[optional scope]: <description>

[optional body]

[optional footer]
  • type: chore, docs, feat, fix, refactor (más comunes)
  • scope: indica la página, componente, funcionalidad
  • description: comienza en minúsculas y no debe superar los 72 caracteres.

📄 Changelog

All notable changes to this package will be documented in Changelog file.


Mex

Made with

Package Sidebar

Install

npm i @tresdoce/nestjs-database

Weekly Downloads

0

Version

0.0.3

License

MIT

Unpacked Size

15.9 kB

Total Files

10

Last publish

Collaborators

  • rudemex