Как я могу повторно создать соединение по умолчанию в typeorm?

#typescript #typeorm

#typescript #typeorm

Вопрос:

Я использую TypeOrm в своем объекте typescript для создания подключения к базе данных: https://typeorm.io/#/connection-api . Я использую API подключения напрямую, а не manager. Проблема в том, что если я повторно создам соединение с базой данных во второй раз, оно выдаст исключение:

 await createConnection(params);


AlreadyHasActiveConnectionError: Cannot create a new connection named "default", because connection with such name already exist and it now has an active connection session
  

причина, по которой мне нужно воссоздать, заключается в использовании других учетных данных для создания соединения.

Как я могу воссоздать соединение?

Комментарии:

1. Вы нашли решение этой проблемы?

2. Я не думаю, что typeorm поддерживает его.

3. У меня была такая же ошибка, мне удалось установить соединение с помощью «ConnectionManager» вместо того, чтобы создавать его каждый раз с помощью функции ‘createConnection ()‘.

Ответ №1:

Если вы используете приложение nodejs на основе express и хотите использовать промежуточное программное обеспечение для вашего соединения TypeORM с любым типом базы данных. Затем используйте приведенный ниже код в вашем файле промежуточного программного обеспечения.

Middleware. ts

 import * as express from express'; 
import (createConnection, getConnectionManager) from "typeorm":

   export const dbConnection async (req:express.Request, 
      res:express.Response, next: express.NextFunction) => {

     if(!getConnectionManager().has("default")) {

       await createConnection();
      }

     next(); 
    }
  

ln index. ts добавить строки ниже

 import {dbConnection} from '/.middleware.ts';
import * as express from 'express';
const app = express () ;
app.use(dbConnection) ;