nest 记录(四)
nest 记录(四)
John Doenest 记录(四)
message wall 这个项目的后端写完了。没有很大的拓展空间。
于是想起来写一个博客,博客GITHUB地址 https://github.com/abigmiu/blog
把这几天的nest遇到的问题记录一下。(文章里面删除了部分代码。
完整代码请查看git仓库) > 发现以前上传的代码都没有记录下来,
原来是电脑配置git的时候邮箱弄错了。 嗳,少了好多绿色小方块
文件上传
首先生成一个resource
file.controller.ts
1 | import { FileInterceptor } from '@nestjs/platform-express'; // 引入express的文件处理模块(只能识别formData)import { UploadDto } from './dto/upload.dto';import { ConfigService } from '@nestjs/config';@ApiTags('文件') |
upload.dto.ts 给swagger 用的
1 | import { ApiProperty } from '@nestjs/swagger';export class UploadDto { |
file.module.ts
1 | import { Module } from '@nestjs/common';import { FileController } from './file.controller';import { MulterModule } from '@nestjs/platform-express';import { diskStorage } from 'multer';import { v4 } from 'uuid';import * as path from 'path';({ |
如何使保存的文件可以直接访问?
需要用到express的静态文件处理方法
main.ts
1 | import { ConfigService } from '@nestjs/config';import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';import { TransformInterceptor } from './interceptor/transform.interceptor';import { ValidationPipe } from 'src/common/pipe/Validate.pipe';import { HttpExceptionFilter } from './common/filter/httpException.filter';import bootStrap from './bootstrap';import { NestExpressApplication } from '@nestjs/platform-express';import { join } from 'path';async function main() { |
CORS
由于axios 拦截了 allow-origin = *
的请求,所以nest开启cors的时候注意下
1 | app.enableCors({ |
可空查询字段的sql处理
有一个接口是可以根据tagId 来查询相关文章的, 这个tagId是可以不传的。
我本来是打算这样select * from tag where id in (null) 。
不传的话就用null表示, 但是这样什么数据都查询不出来,
后来问了一下公司的后端,可以用字符串拼接
1 | async list(query: AdminArticlePageDto) { |







