在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应用程序中实现这一功能的例子。
标签:Base64,Buffer,base64,MyEntity,entity,mysql,import,typeorm From: https://www.cnblogs.com/sexintercourse/p/18066965