From b1f72f7759b5eedaf8eb66f0f8e70f519a5e91e8 Mon Sep 17 00:00:00 2001 From: tone <3341154833@qq.com> Date: Sun, 18 May 2025 14:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0blog=E5=90=8E=E7=AB=AFapi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tone-page-server/src/blog/blog.controller.ts | 20 ++++++++++++++++++- .../src/blog/entity/Blog.entity.ts | 3 +++ 2 files changed, 22 insertions(+), 1 deletion(-) 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;