@tresdoce/nestjs-database
v0.0.3
Published
NestJS database module
Downloads
3
Maintainers
Readme
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
- NestJs Starter
- Node.js v14.15.4 or higher (Download)
- NPM v6.14.10 or higher
- NestJS v8.2.0 or higher (Documentación)
🛠️ 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,
},
},
...
};
});
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.