Comments (5)
Hi @WalterLeinert ,
You can create your own decorator or use the UseAfter decorator to add your own middleware on a method.
SendResponseMiddleware is the last middleware called for one method. After that, it's the global middleware witch handle the current request. The ReponseViewMiddleware is the right example to change the behavior outgoing response data. Try this : https://github.com/Romakita/ts-express-decorators/wiki/Middlewares#how-to-format-the-response-with-middleware.
See you :)
Romain
from tsed.
Hi Romain,
thank you for the answer and your hints.
As in SendResponseMiddleware I need global handling of requests/responses to serialize my data in one place. I dont want to decorate each corrresponding controller method.
Any idea?
Regards,
Walter
from tsed.
Maybe you can use Converter to create a serializer for a Model (class). But I don't think if that answer to your need. See https://github.com/Romakita/ts-express-decorators/wiki/Converters
Other solution is to override the SendReponseMiddleware.use() method with the MiddlewareService.get(SendResponseMiddleware)
//=>instance of middleware.
I haven't a mechanism to do that easily actually (except with the Converter).
See you,
Romain
from tsed.
Hum maybe that will be works:
export class ExtendedSendResponseMiddleware extends SendResponseMiddleware {
public use(@ResponseData() data: any, @Response() response: Express.Response) {
/// place your code here ....
return super.use(data, response);
}
}
// it's hack
(MiddlewareService as any).middlewares.set(SendResponseMiddleware, {
provide: SendResponseMiddleware,
useClass: ExtendedSendResponseMiddleware,
type: 1
});
Maybe works ^^
from tsed.
Hi Romain,
Thank you for your proposal. I will try it tomorrow.
Regards, walter
from tsed.
Related Issues (20)
- [BUG] UseCache does not work on services HOT 4
- [BUG] Named export 'Appender' not found. HOT 5
- Add support for MikroORM v6 HOT 2
- using `@Examples()` on a model HOT 3
- Support `@Hidden` in query parameters HOT 9
- [TECH] Migrate tests from jest to vitest HOT 2
- [TECH] Use vite to bundle front package
- [BUG] Dependencies issue when update Mikro orm to v4.5.0 + HOT 2
- [BUG] Update temporal.io dependencies causing issue HOT 2
- [BUG] Dependency injection w/ useAsyncFactory returns Promise on 2nd invoke() HOT 3
- Link Checker Report HOT 1
- [BUG] Missing repository's d.ts after running 'npm run prisma:generate'
- Override reconnectOnError in tsed ioredis module HOT 3
- Enhance Context Management for event listeners in `SocketHandlersBuilder` HOT 2
- [BUG] Lack support for ACK callbacks HOT 2
- Missing the basics HOT 4
- [BUG] Swagger UI no longer loads HOT 5
- Link Checker Report HOT 1
- [BUG] `deepClone` does not respect built-in objects like `Set` and `Map` HOT 2
- [BUG] Swagger UI no longer loads HOT 36
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 tsed.