如何在 nest.js 中为 ApplicationModule 以外的模块应用中间件?
How to apply middleware in nest.js for module other than ApplicationModule?
我正在尝试基于配置应用中间件,如下所示:
export class UsersModule implements NestModule{
configure(consumer: MiddlewaresConsumer): void {
const authRoutes = UsersController.getAuthRoutes();
consumer
.apply(AuthMiddleware)
.forRoutes(...authRoutes);
}
}
方法getAuthRoutes
是静态的:
public static getAuthRoutes(){
return [
{ path: `/api/users`, method: RequestMethod.ALL},
];
}
我的 AuthMIddleware 非常基础:
@Middleware()
export class AuthMiddleware implements NestMiddleware {
constructor(
@Inject(constants.logger) private logger: Winston,
){}
resolve(...args: any[]): ExpressMiddleware {
// return passport.authenticate('jwt', { session: false });
return (req, res, next) => {
this.logger.debug('AuthMiddleware');
next();
};
}
}
它只是在控制台中记录行。我正在尝试通过获取请求 /api/users 进行访问,我正在获取用户列表,但控制台中没有 AuthMiddleware 消息。有什么建议吗?
查看我的问题here。这只是对文档的误解。
我正在尝试基于配置应用中间件,如下所示:
export class UsersModule implements NestModule{
configure(consumer: MiddlewaresConsumer): void {
const authRoutes = UsersController.getAuthRoutes();
consumer
.apply(AuthMiddleware)
.forRoutes(...authRoutes);
}
}
方法getAuthRoutes
是静态的:
public static getAuthRoutes(){
return [
{ path: `/api/users`, method: RequestMethod.ALL},
];
}
我的 AuthMIddleware 非常基础:
@Middleware()
export class AuthMiddleware implements NestMiddleware {
constructor(
@Inject(constants.logger) private logger: Winston,
){}
resolve(...args: any[]): ExpressMiddleware {
// return passport.authenticate('jwt', { session: false });
return (req, res, next) => {
this.logger.debug('AuthMiddleware');
next();
};
}
}
它只是在控制台中记录行。我正在尝试通过获取请求 /api/users 进行访问,我正在获取用户列表,但控制台中没有 AuthMiddleware 消息。有什么建议吗?
查看我的问题here。这只是对文档的误解。