typeorm mysql 存储base64

在TypeORM中使用MySQL存储Base64数据时,可以将Base64字符串转换为二进制数据并存储在BLOB字段中。以下是一个简单的例子:

首先,确保你的实体有一个适当的列类型,比如blob。

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class MyEntity {
@PrimaryGeneratedColumn()
id: number;

@Column('blob')
base64Data: Buffer;
}

然后,在你的服务或者控制器中,你可以将Base64字符串转换为Buffer并保存到数据库中。

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import * as Buffer from 'buffer/';
import { MyEntity } from './my.entity';

@Injectable()
export class MyService {
constructor(
@InjectRepository(MyEntity)
private readonly myRepository: Repository<MyEntity>,
) {}

async saveBase64(base64String: string): Promise<MyEntity> {
// 移除Base64字符串中的前缀(如'data:image/png;base64,')
const data = base64String.split(',')[1];
// 将Base64字符串转换为Buffer
const buffer = Buffer.from(data, 'base64');

const entity = new MyEntity();
entity.base64Data = buffer;

return this.myRepository.save(entity);
}
}

在这个例子中,我们定义了一个服务MyService,它有一个saveBase64方法,该方法接受一个Base64编码的字符串,将其转换为Buffer,然后创建或更新一个MyEntity实例。

请注意,这里使用了NestJS的依赖注入和修饰符,但是这不是使用TypeORM存储Base64数据的必要条件。这只是一个如何在NestJS应用程序中实现这一功能的例子。

posted on 2024-03-11 20:12  漫思  阅读(40)  评论(0编辑  收藏  举报

导航