Tomando la configuración como ejemplo, la documentación de Nest.js aboga por registrar Módulos de configuración e inyectarlos en otros módulos de una manera de inyección de dependencia.
Los beneficios son obvios y las dependencias y el código son claros, pero ¿qué pasa si tengo un proyecto nest.js que necesita invocar la información de configuración al inicio? Esto realmente me causó problemas.
Mi idea es usar una tienda (en realidad, un cierre) para administrar todas las variables que podrían necesitarse globalmente, los objetos de enlace del lado del cliente, registrados al inicio e introducidos cuando sea necesario.
Cuando las variables correspondientes se registran de esta manera, se pueden introducir en cualquier lugar. El inconveniente es que necesita administrar las dependencias usted mismo.
Con el diseño conceptual anterior de la demostración: https://github.com/sophons-space/nest-server .
Por favor, ayúdenme a corregir, todavía soy un novato.
Si desea utilizar Nest Flow, debe definirlo en el archivo de configuration .
// app.module.ts import configuration from './config/configuration'; imports: [ // first import as first initialization ConfigModule.forRoot({ isGlobal: true, // to get access to it in every component load: [configuration], }), ] ... // configuration.ts export default (): any => { return { someGlobalConfigVariable: parseInt(process.env.PORT, 10) || 3000, }; };La forma en que puede abordar esto es similar a cómo las bibliotecas o integraciones de NestJS generalmente manejan la configuración; usando un método en el módulo base.
main.ts
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { // Note the `configure`-method const app = await NestFactory.create(AppModule.configure({ myConfig: 'value', }); await app.listen(3000); } bootstrap(); app.module.ts
import { DynamicModule } from '@nestjs/common'; export class AppModule { static configure(config): DynamicModule { return { module: AppModule, providers: [{ provide: 'CONFIG', useValue: config }], // .... } } }Cree un archivo global.service.ts (dentro de una carpeta puede nombrarlo utils o lo que sea) y coloque el código a continuación
export class GlobalService{ static globalVar: any; }Establecer valor para globalVar
GlobalService.globalVar = 'some value';Obtener valor de globalVar
console.log(GlobalService.globalVar);NB No olvides importar GlobalService donde quieras usarlo.