Comments (10)
Since 3.0.0
constructor shouldn't break RPC client creation. You can inject dependencies through constructor, but interact with them after module init event.
from nest.
Service that injects a controller sounds so wrong.
from nest.
Service that injects a controller sounds so wrong
service that cant use rpc requests sound wrong too :) controllers are just transport handling buffer and inability to call rpc from main app part - services - looks strange.
Also we have gateways that are same as controllers but for websocket and they can be injected to services 😶
from nest.
Hi @artaommahe,
try to remove method with @RequestMapping from controller and in controller constructor call this.client.send() after some timeout, this.client will be null
It is quite interesting. Do you still have this issue after latest update?
By the way, it should be possible to create @Client()
in both controllers and components.
from nest.
@kamilmysliwiec here it is
https://github.com/artaommahe/nest-63
yarn
yarn run start
after 3 seconds
service client null
controller client null
from nest.
@kamilmysliwiec i checked more - issue due to constructor() {}
defined in both controller and service. So this will not work with explicitly defined constructor like so
@Client({ transport: Transport.TCP, port: 65441 })
private client: ClientProxy;
constructor() {
setTimeout(() => console.log('service client', this.client), 3000);
}
In same repo remove service constructor, inject service into controller and call service method from controller and it works fine.
export class RpcClientController {
constructor(private rpcClientService: RpcClientService) {
setTimeout(() => console.log('controller client', this.rpcClientService.get()), 3000);
}
Hope this will work with defined constructor
in future.
from nest.
Hi @artaommahe,
Let's use OnModuleInit
(https://docs.nestjs.com/lifecycle-events.html) lifecycle event instead of constructor.
from nest.
@kamilmysliwiec but how can i inject smth in service if using constructor breaks RPC client creation?)
from nest.
@kamilmysliwiec moved console.log
check to onModuleInit
and it works, thx
from nest.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from nest.
Related Issues (20)
- Dependency Injection does not work for .tsx files HOT 4
- ConfigurableModuleBuilder "alwaysTransient: false" (@default) doesn't work HOT 20
- KafkaJS typing mismatch HOT 3
- Milvus Support HOT 1
- Could not resolve dependency for reflect-metadata HOT 1
- Middleware doesn't get called if more than one version is specified in `version` HOT 4
- Nested routes in NestJS are confused with parameters HOT 1
- Custom TypeORM Repository undefined in NestJS integration tests HOT 6
- Global Guards are not triggered when route is registered with httpService.get('/route`) HOT 3
- WebSocket response not received when returning a json object HOT 1
- Inconsistent Route Matching in NestJS Based on Route Declaration Order HOT 10
- Including TypeORM migration in monorepo application HOT 1
- Injected @Body in POST request handler is `undefined` HOT 16
- @Body transform issue: The `metatype` property of the 2nd Arg to ValidationPipe.transform(v, metadata) is `undefined` during jest e2e `supertest` run. HOT 8
- MODULE_OPTIONS_TOKEN can not be resolved in Pipe HOT 1
- mongo transaction cannot work well HOT 1
- Unable to get collection stats() HOT 1
- Cannot extend `ValidationPipe` properly HOT 1
- Not able to use ESM node packages. HOT 1
- TCP microservice does NOT have a max message length HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nest.