#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) ;