Я хотел бы создать типорму класса менеджера для абстрактного и упрощенного кода в побочном файле vue.js.
Я уже создал класс, и, похоже, он работает, но не при первом запуске приложения. Только после перезагрузки на лету! Возможно, проблема заключается в async / await, но я не понимаю, где находится место кодирования ошибок.
При первом запуске моя ошибка:
Uncaught (in promise) Error: No metadata for "Public" was found
Но если я добавлю глупый код (для перезагрузки броска на лету), у меня больше не будет этой ошибки (возможно, между двумя кодами загрузки устанавливается связь)
Можете ли вы помочь мне создать (и понять) базовую типологию диспетчера классов для создания множества функций (получение, установка, запрос, ...), которые вызывают мой компонент vue.js?
Это мой класс типовой формы менеджера (оболочка):
import * as fs from 'fs'
import * as typeorm from 'typeorm'
import {Public} from './../entity/Public'
export default class testConnectionManager
{
init()
{
if (!typeorm.getConnectionManager().has("default"))
{
let connection = this.createConnection()
}
else
{
return typeorm.getConnectionManager().get("default")
}
}
async createConnection()
{
let connection = await typeorm.getConnectionManager().create({
type: "sqlite",
database: './src/data/mydb.sql',
entities: [
Public,
],
})
let ok = await connection.connect()
}
testConnection()
{
let manager = typeorm.getConnectionManager()
let test1 = manager.has("default")
console.info(test1)
}
base2()
{
let connection = this.init()
let toto = "toto"
const defaultConnection = typeorm.getConnectionManager().get("default")
let public1 = new Public()
public1.name = "dirty public"
defaultConnection.manager
.save(public1)
.then(public1 => {
console.info("Public has been saved. Public id is", public1.id);
})
}
base()
{
typeorm.createConnection({
type: "sqlite",
database: './src/data/mydb.sql',
entities: [
Public,
],
}).then(connection => {
let public1 = new Public()
public1.name = "dirty public"
return connection.manager
.save(public1)
.then(public1 => {
console.info("Public has been saved. Public id is", public1.id);
});
}).catch(error => console.info(error));
}
load()
{
typeorm.createConnection({
type: "sqlite",
database: './src/data/mydb.sql',
entities: [
Public,
],
}).then(connection => {
}).catch(error => console.info(error));
}
}





Ошибка возникает из-за того, что TypeORM не может разрешить путь к объекту Общественные. В моем случае я установил путь объекта к моим перенесенным файлам JavaScript (я думаю, что вначале у меня была та же проблема, что и у вас), поэтому вы можете попробовать что-то вроде этого:
typeorm.createConnection({
type: "sqlite",
database: './src/data/mydb.sql',
entities: ['PATH_TO_ENTITY/**/*.js'],
}).then(connection => { ...
Проблема связана с большим количеством сообщений, чем с объявлением сущностей. У меня уже есть другой код, который работает с моим объявлением сущностей при создании соединения.