乐闻世界logo
搜索文章和话题

Saving Buffer on Postgres bytea with TypeORM only store 10 bytes

2 个月前提问
1 个月前修改
浏览次数31

1个答案

1

当您要使用TypeORM在PostgreSQL数据库中保存一个仅包含10个字节的缓冲区数据时,首先需要确定您的数据库模型中字段的适当类型。在PostgreSQL中,通常可以使用bytea类型来存储字节数据。

以下是一个示例,展示如何在TypeORM中定义模型并保存一个具有bytea字段的实体。

假设我们有一个名为FileData的实体,它包含一个类型为bytea的字段data来存储字节数据。

首先,我们需要定义实体模型:

typescript
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; @Entity() export class FileData { @PrimaryGeneratedColumn() id: number; @Column("bytea") data: Buffer; }

在该模型中,我们使用了@Column("bytea")装饰器来标识data字段应存储为字节数据。

接下来,是如何插入和保存这个包含10个字节的缓冲区数据到FileData表:

typescript
import { createConnection } from "typeorm"; import { FileData } from "./FileData"; async function saveData() { const connection = await createConnection(/* 这里填入您的数据库连接配置 */); const fileDataRepository = connection.getRepository(FileData); // 创建一个新的FileData实体 const fileData = new FileData(); fileData.data = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A]); // 保存实体到数据库 await fileDataRepository.save(fileData); console.log("数据已保存"); await connection.close(); } saveData().catch(console.error);

在这个示例中,我们首先创建了一个新的FileData实例,并将data字段的值设置为一个包含10个字节的Buffer。然后,我们使用TypeORM的save()方法将实体保存到数据库中。

通过这种方式,我们可以确保在PostgreSQL数据库中正确地存储字节数据。这种方法不仅适用于10个字节的数据,也适用于更大或更小的字节数组。

2024年8月3日 16:40 回复

你的答案