generate-nats-service
v1.0.3
Published
auto generate a service
Downloads
3
Readme
Description
[Nest]:Auto generate a service to pika.
Running the app
$ nest new [project-name]
$ npm i pick-a-generate-service
$ cd project-name/src
$ touch index.ts
ADD in index.ts :
import {reGenerateService} from 'generate-nats-service'
reGenerateService()
RUN npx ts-node index.ts
Create new service
ADD a new .env file
NatsServerDB="nats://localhost:4222"
NatsServerEvent="nats://localhost:4222"
ElasticServer='http://0.0.0.0:9200'
GRPC_URI='localhost:5556'
port='4444'
In utils folder:
- Create a new file named
grpc.clientoptions.ts
and add the following code to
import { ClientOptions ,Transport} from '@nestjs/microservices';
import { loader, packages, paths } from './protopaths';
export const grpcClientOptions: ClientOptions = {
transport: Transport.GRPC,
options: {
url: process.env.GRPC_URI,
package: packages,
protoPath: paths,
loader: loader,
},
};
- Create a new file named
nats.clientoptions.ts
and add the following code to
import { ClientOptions ,Transport} from '@nestjs/microservices';
export const NatsClientOptions: ClientOptions = {
transport: Transport.NATS,
options: {
servers: [process.env.NatsServerEvent],
},
};
REWRITE app.module.ts
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { [Service]Module } from './services/[service]/[service].module';
@Module({
imports: [ ConfigModule.forRoot({
isGlobal: true,
}),[Service]Module
],
controllers: [],
providers: [],
})
export class AppModule {}
REWRITE main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { MicroserviceOptions } from '@nestjs/microservices';
import { NatsClientOptions } from './utils/nats.clientoption';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.connectMicroservice<MicroserviceOptions>(grpcClientOptions );
app.connectMicroservice<MicroserviceOptions>(NatsClientOptions);
await app.startAllMicroservices();
await app.listen(process.env.port)
}
bootstrap();
REWRITE nest-cli.json to use GRPC
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true,
"assets": ["**/*.proto"],
"watchAssets": true
}
}