Comments (4)
Okay so i have found a workaround.
import { Middleware } from '@decorators/express';
import { Request, Response, NextFunction } from 'express';
export function ValidationMiddleware(message: string): any {
abstract class ValidationMiddlewareClass implements Middleware {
public use(_: Request, __: Response, next: NextFunction): void {
console.log(message);
next();
}
}
return ValidationMiddlewareClass;
}
But if you know a better/cleaner solution i would love to see it ;)
from node-decorators.
Have you thought doing that via DI?
from node-decorators.
Would you be able to give an example of how to do that via di?
from node-decorators.
Hi @root0x, Here's an example:
import { ERROR_MIDDLEWARE, ErrorMiddleware } from '@decorators/express';
import { Container, Injectable, InjectionToken, Inject } from '@decorators/di';
...
const MESSAGE = new InjectionToken('MESSAGE');
...
@Injectable()
class MessageService {
constructor(@Inject(MESSAGE) public message: string) {}
}
...
@Injectable()
class ServerErrorMiddleware implements ErrorMiddleware {
constructor(private messageService: MessageService) {}
async use(error, _req, res) {
res.status(500).send(
`
${this.messageService.message} \n
${error.toString()}
`
);
}
}
...
Container.provide([
{
provide: MESSAGE,
useValue: 'Hello World Injection Message',
},
{
provide: ERROR_MIDDLEWARE,
useClass: ServerErrorMiddleware,
},
]);
...
from node-decorators.
Related Issues (20)
- Rename Request, Response Decorators to Req and Res HOT 6
- How to use native express middleware in controller or REST decorator? HOT 9
- @decorators/socket with @decorators/express HOT 3
- Decorators in multiple files HOT 2
- Unable to get sent object with @Body HOT 4
- Feature Request - Plugin Server System HOT 6
- Injection failed for classes with properties in constructor HOT 1
- After Using Next response from other controllers are empty HOT 2
- Cannot read properties of undefined (reading 'use') HOT 1
- Question: example of how to use error middleware? HOT 10
- Feature Request - Dynamic controller (class) instance HOT 9
- Container.get returns a Promise HOT 2
- Feature Request - attach custom decorators HOT 5
- Feature request - Custom http code handling HOT 3
- Typescript v5 injection of type undefined HOT 11
- socket decorator not working HOT 1
- TypeError: Cannot read properties of undefined HOT 4
- Decorators with inheritance HOT 4
- Error while inject property in middelwares HOT 6
- Error injection HOT 18
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 node-decorators.