【发布时间】:2020-10-14 02:04:35
【问题描述】:
我正在尝试将 NestJS 中的自定义中间件项目导出到我的所有其他项目(并将其导入所有项目)。我的实际课程是 acl-jwt.middleware.ts 在其引导程序 src 文件夹中。
在acl-jwt.middleware.ts我有:
import { Injectable, NestMiddleware, } from '@nestjs/common';
@Injectable()
export class AclJwtMiddleware implements NestMiddleware {
use(req: any, res: any, next: () => void) {
console.log("ACL JWT Middleware !!")
next();
}
}
而我的app.module.ts 有:
import { Module, NestModule, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AclJwtMiddleware } from './acl-jwt.middleware';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(AclJwtMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL });
}
}
在我另一个项目的app.module.ts 中,我正在像下面这样导入它
import { AclJwtMiddleware } from 'mi';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(AclJwtMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL });
}
}
mi 是我的托管包。
然后当我运行我的第二个项目时,我收到以下错误:
src/app.module.ts:16:34 - error TS2307: Cannot find module 'mi' or its corresponding type declarations.
16 import { AclJwtMiddleware } from 'mi';
我不是在导出什么东西吗?还是我没有正确导入?
我一直在互联网上搜索,但找不到与我的用例有关的东西。任何帮助都会非常好。谢谢你们! :)
【问题讨论】:
标签: node.js nestjs middleware