📜  TypeORM-创建简单项目(1)

📅  最后修改于: 2023-12-03 15:35:24.062000             🧑  作者: Mango

TypeORM-创建简单项目
介绍

TypeORM 是一个基于 TypeScript 的 ORM 框架,支持多种数据库,并为你提供了很好的工具与灵活的 API,用于轻松地操作数据库。

在本文中,我们将创建一个简单的项目来使用 TypeORM 框架,其中我们将使用 SQLite 数据库作为持久化存储。

步骤

1. 创建新项目

首先,我们需要创建一个新的项目并初始化 package.json 文件。使用 npm init 命令创建新包并填写相应选项。

2. 安装 TypeORM

接下来,我们需要在项目中安装 TypeORM 和 SQLite 驱动程序。运行以下命令来进行安装:

npm install typeorm reflect-metadata sqlite3 @types/node --save

@types/node 可能已经成为项目的依赖项,是为了使 TypeScript 与 Node.js 的运行时交互更好而安装的。reflect-metadata 是 TypeORM 所需的库。

3. 配置 TypeORM

我们需要为 TypeORM 配置我们的 SQLite 数据库。在项目根目录下创建一个新的文件 ormconfig.json,并添加以下内容:

{
  "type": "sqlite",
  "database": "database.sqlite",
  "synchronize": true,
  "logging": false,
  "entities": [
    "src/entity/**/*.ts"
  ],
  "migrations": [
    "src/migration/**/*.ts"
  ],
  "subscribers": [
    "src/subscriber/**/*.ts"
  ],
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "src/migration",
    "subscribersDir": "src/subscriber"
  }
}

我们在这里指定了 SQLite 数据库的类型,它的名称以及其他 TypeORM 配置。

4. 创建实体

实体是在我们的数据库中存在的模型。这是用于创建实体的模板:

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

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

  @Column()
  name!: string;

  @Column()
  description!: string;
}

在这里,我们创建了一个 ExampleEntity 实体,它有三个属性:

  • id - 主键自动生成的数字列
  • name - 字符串列
  • description - 字符串列

不要忘记将实体添加到 ormconfig.json 文件中。

5. 数据库连接

现在,我们可以连接到数据库并运行我们的这个简单的项目:

import 'reflect-metadata';
import { createConnection } from 'typeorm';
import { ExampleEntity } from './entity/ExampleEntity';

createConnection().then(async (connection) => {
  const exampleEntity = new ExampleEntity();
  exampleEntity.name = 'Example';
  exampleEntity.description = 'An example entity';

  await connection.manager.save(exampleEntity);

  console.log('Example entity has been saved.');

  await connection.close();
}).catch((error) => console.log(error));

在这个项目中,我们创建了一个数据库连接并将 ExampleEntity 实体保存到数据库中。重要的是要注意,我们必须使用 await 等待 manager.save 方法完成,因为保存实体是一个异步的操作。最后,我们关闭数据库连接。

6. 运行和测试

最后,我们可以使用 npm run build 构建项目,然后用 npm start 命令运行它。如果没有错误,则输出将包含“Example entity has been saved.”消息。

结论

我们已创建了一个基于 TypeORM 的简单项目,并使用 SQLite 数据库存储了一个实体。TypeORM 提供了很多有用的工具和灵活的 API,用于更复杂的数据库操作。这是一个强大的框架,可以帮助开发人员轻松地处理数据库相关任务。