创建连接池TypeOrm

时间:2017-10-20 06:10:27

标签: javascript mysql typescript typeorm

如何使用TypeOrm创建连接池?在探索TypeOrm时,我想创建用于使用MySql的连接池

以下是代码段:

import { createConnection } from 'typeorm';

export const databaseProviders = [
  {
    provide: 'DbConnectionToken',
    useFactory: async () => await createConnection({
      type: 'mysql',
      host: 'localhost',
      port: 8889,
      username: 'root',
      password: 'root',
      database: 'typeorm_test',
      entities: [
        __dirname + '/../**/**.entity{.ts,.js}',
      ],
      autoSchemaSync: true,
      logging: 'all',
    }),
  },
];

3 个答案:

答案 0 :(得分:2)

TypeORM总是为您创建一个开箱即用的连接池,您不需要设置任何东西。它使用每个请求池中的一个连接到存储库/实体管理器方法,或每个事务。

答案 1 :(得分:0)

您需要将#!/bin/bash #SBATCH --job-name=arrayJob #SBATCH --output=arrayJob_%A_%a.out #SBATCH --error=arrayJob_%A_%a.err #SBATCH --array=1-8 #SBATCH --time=01:00:00 #SBATCH --ntasks=1 # Print this sub-job's task ID echo hello 参数传递给基础数据库。在official doc中,在typeorm中看起来像只有支持连接池的mssql和mongo。

答案 2 :(得分:0)

TypeORM默认情况下使用默认为10个连接的连接池。如果您希望有自定义池限制(建议),则可以在connectionLimit选项下的extra中提到相同的条件,这些选项将传递给底层MySQL驱动程序。

 [
    {
        "name": "default",
        "type": "mysql",
        "host": "mysql.db",
        "port": 3306,
        "username": "appUser",
        "password": "appRandomPassword",
        "database": "entity_schema",
        "entities": [
            "dist/models/entities/**/*.js"
        ],
        "logging": [
            "error"
        ],
        "extra": {
            "connectionLimit": 5
        }
    }
]

TypeORM Docs

MySQL Connection pooling options,可根据需要在extra下传递。