diff --git a/tone-page-server/src/blog/blog.controller.ts b/tone-page-server/src/blog/blog.controller.ts index 7949819..8d37552 100644 --- a/tone-page-server/src/blog/blog.controller.ts +++ b/tone-page-server/src/blog/blog.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Get } from '@nestjs/common'; +import { BadRequestException, Controller, Get, Param, ParseUUIDPipe } from '@nestjs/common'; import { BlogService } from './blog.service'; @Controller('blog') @@ -12,4 +12,22 @@ export class BlogController { getBlogs() { return this.blogService.list(); } + + @Get(':id') + async getBlog( + @Param('id', new ParseUUIDPipe({ version: '4' })) id: string, + ) { + const blog = await this.blogService.findById(id); + if (!blog) throw new BadRequestException('文章不存在'); + + const blogDataRes = await fetch(`${blog.contentUrl}`); + const blogContent = await blogDataRes.text(); + + return { + id: blog.id, + title: blog.title, + createdAt: blog.createdAt, + content: blogContent, + }; + } } diff --git a/tone-page-server/src/blog/entity/Blog.entity.ts b/tone-page-server/src/blog/entity/Blog.entity.ts index d3049aa..579eef7 100644 --- a/tone-page-server/src/blog/entity/Blog.entity.ts +++ b/tone-page-server/src/blog/entity/Blog.entity.ts @@ -14,6 +14,9 @@ export class Blog { @Column() contentUrl: string; + @Column({ default: 0 }) + viewCount: number; + @CreateDateColumn({ precision: 3 }) createdAt: Date;