当我尝试到达任何端点时,我在 IDE 控制台中看不到任何状态或控制台消息。我确实看到返回了响应,但控制台中没有呼叫详细信息。我很困惑为什么它会这样?
以下是我跑步时看到的情况npm run-script start:dev——
> nest start --watch
[3:04:44 PM] Starting compilation in watch mode...
[Nest] 14340 - 05/20/2020, 3:10:58 PM [NestFactory] Starting Nest application...
[Nest] 14340 - 05/20/2020, 3:10:58 PM [InstanceLoader] TypeOrmModule dependencies initialized +220ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [InstanceLoader] TypeOrmCoreModule dependencies initialized +195ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [InstanceLoader] TypeOrmModule dependencies initialized +6ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [InstanceLoader] AppModule dependencies initialized +5ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RoutesResolver] AppController {}: +13ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {, GET} route +4ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RoutesResolver] BatchController {/batch}: +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/batch, POST} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/batch, GET} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/batch/:batch, GET} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/batch/:batch, DELETE} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RoutesResolver] StudentController {/student}: +0ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/student, POST} route +2ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/student, GET} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/student/:id, GET} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:58 PM [RouterExplorer] Mapped {/student/:id, DELETE} route +2ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RoutesResolver] AssignmentController {/assignment}: +1ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RouterExplorer] Mapped {/assignment, POST} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RouterExplorer] Mapped {/assignment, GET} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RouterExplorer] Mapped {/assignment/:id, GET} route +2ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RouterExplorer] Mapped {/assignment/:id, DELETE} route +1ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RoutesResolver] UploadController {/upload}: +1ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [RouterExplorer] Mapped {/upload, POST} route +2ms
[Nest] 14340 - 05/20/2020, 3:10:59 PM [NestApplication] Nest application successfully started +3ms
Run Code Online (Sandbox Code Playgroud)
当我点击 时http://localhost:3000/batch,我看到了响应,但上面的控制台没有显示API类型GET或状态200等任何内容。
这就是我在控制器中的内容 -
import {
Controller,
Get,
Post,
Body,
Param,
Delete,
Logger,
} from '@nestjs/common';
import { BatchService } from './batch.service';
import { Batch } from './batch.entity';
import { InsertResult } from 'typeorm';
@Controller('batch')
export class BatchController {
private readonly logger = new Logger(BatchController.name);
constructor(private batchService: BatchService) {}
@Post()
create(@Body() batchDto: Batch): Promise<InsertResult> {
this.logger.log(':: BatchController :: create()');
console.log(':: BatchController :: create()');
return this.batchService.create(batchDto);
}
@Get()
findAll(): Promise<Batch[]> {
this.logger.log(':: BatchController :: findAll()');
console.log(':: BatchController :: findAll()');
return this.batchService.findAll();
}
@Get(':batch')
findOne(@Param('batch') batchName): Promise<Batch> {
this.logger.log(':: BatchController :: findOne()');
console.log(':: BatchController :: findOne()');
return this.batchService.findOne(batchName);
}
@Delete(':batch')
remove(@Param('batch') batchName) {
this.logger.log(':: BatchController :: remove()');
console.log(':: BatchController :: remove()');
return this.batchService.remove(batchName);
}
}
Run Code Online (Sandbox Code Playgroud)
将console和logger两者都设置为看看是否有任何效果。
小智 5
您似乎已禁用 NestJS 应用程序的日志。启用 NestJS 请求日志记录的最佳且简单的方法是使用其内置记录器服务。为此,您可以在引导 NestJS 应用程序时传递 LogLevel 数组。
在您的main.ts手术室中,无论您在何处引导 Nest 应用程序,
const app = await NestFactory.create<NestExpressApplication>(AppModule, new ExpressAdapter(), {
cors: true,
logger: ['error', 'warn', 'log'] // <--- Add this line in options object
});
Run Code Online (Sandbox Code Playgroud)
LogLevels在这里,传递一个in数组options.logger。
截至目前,LogLevel 类型具有以下适用值:
declare type LogLevel = 'log' | 'error' | 'warn' | 'debug' | 'verbose';
Run Code Online (Sandbox Code Playgroud)
(代码片段取自@nestjs/common)
现在再次运行该项目,它应该在控制台中打印请求日志。
| 归档时间: |
|
| 查看次数: |
11345 次 |
| 最近记录: |