Quantcast
Channel: Active questions tagged config - Stack Overflow
Viewing all articles
Browse latest Browse all 5054

NestJS problems with shared modules

$
0
0

I am trying to create a shared logging module in NestJS that can be shared between multiple micro-services.

The logging module works when it is part of the micro-service but when I extract the code to its own NPM module it no longer works.

Below is a sample of my shared NPM module code:

 // my-logger.module.tsimport { Module } from '@nestjs/common';import { ConfigModule, ConfigService } from '@nestjs/config';import { LoggerModule } from 'nestjs-pino';@Module({  imports: [    LoggerModule.forRootAsync({      imports: [ConfigModule],      useFactory: async (configService: ConfigService) => ({        pinoHttp: {          level: process.env.LOG_LEVEL || 'info',          redact: configService.get<string[]>('logger.redacted.fields'),          prettyPrint: {            colorize: false,            singleLine: true,            levelFirst: false,            translateTime: "yyyy-mm-dd'T'HH:MM:ss.l'Z'",            messageFormat: '{req.headers.x-correlation-id} [{context}] {msg}',            ignore: 'pid,hostname,context,req,res,responseTime',            errorLikeObjectKeys: ['err', 'error'],          },        },      }),      inject: [ConfigService],    }),  ],  controllers: [],  providers: [],})export class MyLoggerModule {}

Below is a sample of the App Module from my NestJS micro-service

// app.module.tsimport { Module } from '@nestjs/common';import { ConfigModule } from '@nestjs/config';import configuration from '../config/configuration';import { MyLoggerModule } from '@my-company/my-logger.module';import { HttpModule } from '@nestjs/axios';@Module({  imports: [    ConfigModule.forRoot({ load: [configuration] }),    MyLoggerModule,    HttpModule,  ],  controllers: [],  providers: [],})export class AppModule {}

The micro-service builds and deploys correctly with the shared npm module. However, each time I send a new request it causes the service to restart with the following error:

node[1]: ../src/tcp_wrap.cc:149:static void node::TCPWrap::New(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[0]->IsInt32()' failed.

Does anyone have any ideas on why this is failing ?

Note: I am guessing it has something to do with the ConfigService/ConfigModule being used in both modules. However, I don't understand why the same code works when it is part of the micro-service


Viewing all articles
Browse latest Browse all 5054

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>