我使用 Nest js 来构建我的项目,但是我在工作中遇到了一个错误,我没有找到任何解决方案,我正在从文件中导出一个函数并将其导入到控制器中,但它给出了错误这不是一个模块,没有进行导出,但我正在导出函数,如代码中所示
我的守卫代码
``import { AuthGuard } from '@nestjs/passport';
export class AdminGuard extends AuthGuard ('admin'){
constructor(){
super();
}
}`
`导出这个
```export * from './admin-jwt.strategy'`
` 我的控制器文件代码
``import { Controller, Get,UseGuards } from '@nestjs/common';
import { UserService } from './user.service';
import { JwtGuard,AdminGuard } from 'src/auth/guard';
import { DynamicRole } from 'src/auth/decorator';
@UseGuards(AdminGuard,DynamicRole)
@DynamicRole('superadmin', 'support')
@Controller('user')
export class UserController {
constructor(private userservice:UserService){}
@Get('me')
getme(){
return this.userservice.getme();
}
}`
`
` 我尝试重新启动服务器并检查 ts 配置并检查 dist 文件夹是否有任何错误,但没有找到任何内容
我的 ts 配置文件
`{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "ES2021",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true,
"strictNullChecks": false,
"noImplicitAny": false,
"strictBindCallApply": false,
"forceConsistentCasingInFileNames": false,
"noFallthroughCasesInSwitch": false
}
}`
我也尝试使用 es6 更改 commonjs,但未找到内置模块的其他错误 poopup,如下图所示
问题在于导入
import { JwtGuard,AdminGuard } from 'src/auth/guard';
使用 ../ 代替 src
import { JwtGuard,AdminGuard } from '../auth/guard';