返回
Featured image of post TypeORM - 安裝與介紹

TypeORM - 安裝與介紹

TypeORM 安裝與介紹

20220930-備註更新 此篇文章為 0.2.x


  • 支持 MySQL / MariaDB / Postgres / CockroachDB / SQLite / Microsoft SQL Server / Oracle / SAP Hana / sql.js
  • 支持 MongoDB NoSQL數據庫
  • json / xml / yml / env 格式的連接配置

安裝說明

以MySQL為範例使用

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

TypeScript tsconfig.json

"emitDecoratorMetadata": true,
"experimentalDecorators": true,

連線說明

ormconfig.js

module.exports = {
    type: 'mysql',
    logging: process.env.NODE_ENV === 'production' ? [ 'error', 'warn' ] : true,
    synchronize: process.env.NODE_ENV === 'development' ? true : false,
    replication: {
        master: {
            host: process.env.MYSQL_MASTER_HOST,
            port: 3306,
            username: process.env.MYSQL_USERNAME,
            password: process.env.MYSQL_PASSWORD,
            database: process.env.MYSQL_DATABASE,
        },
        slaves: [{
            host: process.env.MYSQL_MASTER_HOST,
            port: 3306,
            username: process.env.MYSQL_USERNAME,
            password: process.env.MYSQL_PASSWORD,
            database: process.env.MYSQL_DATABASE,
        }],
        canRetry: true,
        /**
         * 當errorCount大於removeNodeErrorCount時,請刪除PoolCluster中的節點。 (默認值:5)
         */
        removeNodeErrorCount: 5,
        /**
         * 如果連接失敗,請指定進行另一次連接之前的毫秒數。
         * 如果設置為0,則將刪除節點,並且永遠不會重複使用該節點。 (Default: 0)
         */
        restoreNodeTimeout: 0,
        /**
         * 確定如何 slaves 選擇:
         * RR: 交替選擇一個(循環)
         * RANDOM: 通過隨機函數選擇節點。
         * ORDER: 選擇第一個無條件可用的節點。
         */
        selector: 'RR',
    },
    entities: [
        'entities/*.js',
    ],
    migrations: [
        'migrations/*.js',
    ],
    subscribers: [
        'subscribers/*.js',
    ],
    cli: {
        entitiesDir: 'entities',
        migrationsDir: 'migrations',
        subscribersDir: 'subscribers',
    },
    extra: {
        connectionLimit: 10,
    },
}
import {createConnection} from "typeorm";

// createConnection method 會自動讀取連線 options 來自 ormconfig file
const connection = await createConnection();
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus