Nodejs ORM框架TypeORM的使用

Nodejs ORM框架TypeORM的使用
TypeORM 是一个强大的 Node.js ORM 框架,它支持多种数据库,如 MySQL、PostgreSQL、SQLite 和 MSSQL。下面是一些基本的使用步骤和示例代码。

1. 安装 TypeORM

首先,你需要在你的项目中安装 TypeORM 及其依赖项:

npm install typeorm reflect-metadata --save

2. 配置数据库连接

在你的项目中创建一个配置文件(例如 ormconfig.json),用于定义数据库连接信息:

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "your-password",
  "database": "testdb",
  "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"
  }
}

3. 创建实体类

接下来,创建一个实体类来表示数据库中的表。例如,创建一个 User 实体:

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

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

  @Column()
  firstName: string;

  @Column()
  lastName: string;
}

4. 使用 Repository 进行 CRUD 操作

你可以通过 getRepository 方法获取实体的 Repository,然后进行各种操作:

import { getRepository } from 'typeorm';
import { User } from './entity/User';

async function main() {
  const userRepository = getRepository(User);

  // 插入数据
  let user = new User();
  user.firstName = 'John';
  user.lastName = 'Doe';
  await userRepository.save(user);
  console.log('User has been saved');

  // 查询数据
  user = await userRepository.findOne(1);
  if (user) {
    console.log(`Found user: ${user.firstName} ${user.lastName}`);
  }

  // 更新数据
  user.firstName = 'Jane';
  await userRepository.save(user);
  console.log('User has been updated');

  // 删除数据
  await userRepository.delete(1);
  console.log('User has been deleted');
}

main().catch(err => console.error(err));

5. 启用装饰器

为了使上述代码正常工作,你需要在项目入口文件中启用装饰器支持。在 tsconfig.json 中设置 "experimentalDecorators": true"emitDecoratorMetadata": true

6. 类型声明

确保你已经安装了 TypeScript 类型声明:

npm install @types/node --save-dev

以上就是使用 TypeORM 的基本步骤。你可以根据需要调整配置和实体类。TypeORM 提供了丰富的功能,包括查询构建器、存储过程调用等高级特性。


3 回复

TypeORM,听起来就像是你在用魔法给数据库施咒一样!首先,你需要安装它,就像给你的项目施加一个神秘的咒语:npm install typeorm --save

然后,你得定义一个实体,这就像给数据库中的每个表赋予生命。例如:

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

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

  @Column()
  name: string;

  @Column()
  evilnessLevel: number;
}

接下来,就是连接到你的数据库,这一步就像是召唤出一个神秘的传送门。你需要在你的应用中配置一个连接:

import { createConnection } from "typeorm";
createConnection().then(connection => {
    // 现在你可以通过connection对象来操作数据库了
}).catch(error => console.log(error));

最后,使用这个ORM框架就像施展魔法一样简单。你可以轻松地查询、插入、更新和删除数据,而不需要直接写SQL语句。比如,添加一个反派:

const villain = new Villain();
villain.name = "Dr. Evil";
villain.evilnessLevel = 10;

connection.manager.save(villain);

就这样,你已经用TypeORM为你的Node.js应用添加了一个强大的数据库操作能力!


TypeORM 是一个强大的 Node.js ORM 框架,基于 TypeScripts,可以用于任何数据库。以下是一些基本的使用步骤和示例代码。

安装

首先,你需要安装 TypeORM 和必要的数据库驱动:

npm install typeorm --save
npm install mysql2 --save  # 根据你的数据库选择相应的驱动,这里以 MySQL 为例

配置

在项目根目录下创建一个 ormconfig.json 文件,配置数据库连接信息:

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "test",
  "password": "test",
  "database": "test",
  "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"
  }
}

实体(Entity)

定义一个实体类,它对应于数据库中的表:

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

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

  @Column()
  name: string;

  @Column()
  age: number;
}

数据库操作

使用 Repository 或 EntityManager 进行数据库操作:

import { getRepository } from 'typeorm';
import { User } from './entity/User'; // 引入刚才定义的实体

async function main() {
  const userRepository = getRepository(User);

  // 插入数据
  let user = new User();
  user.name = "John Doe";
  user.age = 25;
  await userRepository.save(user);

  // 查询数据
  user = await userRepository.findOne({ name: "John Doe" });
  console.log(user);

  // 更新数据
  if (user) {
    user.age = 26;
    await userRepository.save(user);
  }

  // 删除数据
  if (user) {
    await userRepository.delete(user.id);
  }
}

main().catch(err => console.error(err));

连接管理

通常情况下,你不需要手动管理数据库连接,因为 TypeORM 在需要时会自动为你打开连接,并在事务完成后自动关闭。

总结

以上是 TypeORM 的一些基础使用方法,你可以根据自己的需求进一步探索更多功能,如关联关系、查询构建器等。TypeORM 提供了非常丰富的文档,建议阅读官方文档以获取更详细的信息:https://typeorm.io/

TypeORM 是一个用于 Node.js 的 ORM 框架,支持多种数据库。以下是基本使用步骤:

  1. 安装:npm install typeorm --save
  2. 引入并配置 TypeORM:在项目中引入 typeorm 并进行数据库连接配置。
  3. 实体定义:创建实体类,并用装饰器定义字段和表名等信息。
  4. 创建连接:使用 createConnection()createConnections() 方法来建立数据库连接。
  5. 数据操作:通过仓库(Repository)或存储库(EntityManager)进行增删查改操作。

更多细节可以查阅官方文档。

回到顶部