繁体   English   中英

无法使用 TypeOrm 并找不到明确的“连接”默认值“

[英]Cannot use TypeOrm with express “connection ”Default" not found

我目前在使用 typeOrm 时遇到了不好的情况,我不知道为什么,但是在我使用 typeOrm 连接到数据库之前已经初始化了 express 所以我收到一个错误“未找到连接默认值”

这是代码

Typeorm.config.ts

import {Connection, createConnection} from 'typeorm';

export function connectToDb(): Promise<Connection> {
    return createConnection({
        type: 'postgres',
        url: process.env.TYPEORM_URL,
        synchronize: false,
        logging: true,
        entities: [process.env.TYPEORM_ENTITIES],
        migrations: ["../../migrations/*.ts"],
        cli: {migrationsDir: process.env.TYPEORM_MIGRATIONS_DIR}
    })
}

Room.repository

import {getRepository} from 'typeorm';
import {Room} from '../entities/Room';

const roomRepository = getRepository(Room)

export async function getAllRooms(): Promise<Room[]> {
    return await roomRepository.find()
}

这个 repo 被我的路由器使用,这是我的 app.ts

import * as express from 'express'
import * as bodyParser from 'body-parser';
import * as PassportJs from './passport';
import cors from 'cors';
import logger from './config/logger';
import "reflect-metadata";
import * as dotenv from 'dotenv';

dotenv.config();

import roomRouter from './routes/room.route';
import {connectToDb} from './config/typeorm.config';
const passport = PassportJs.initPassport();

async function main(): Promise<void> {

    logger.info('connecting to database...')
    await connectToDb()
    logger.info('connected to database')

    const app = express();
    app.use(bodyParser.json());
    app.use(passport.initialize());
    app.use(cors());

    app.use(roomRouter);

    app.listen(3000, () => {
        logger.info(`API is running on port ${3000}`);
    });
}
main().catch(error => {
    logger.error(error)
    process.exit(1)
})


你能帮助我吗?

感谢

从您共享的代码片段中,我猜const roomRepository = getRepository(Room)await connectToDb()之前被调用。 创建 repo 需要连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM