Создать базовый класс менеджера для библиотеки типов и проекта vue.js

Я хотел бы создать типорму класса менеджера для абстрактного и упрощенного кода в побочном файле 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));
    }
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
413
1

Ответы 1

Ошибка возникает из-за того, что TypeORM не может разрешить путь к объекту Общественные. В моем случае я установил путь объекта к моим перенесенным файлам JavaScript (я думаю, что вначале у меня была та же проблема, что и у вас), поэтому вы можете попробовать что-то вроде этого:

typeorm.createConnection({
            type: "sqlite",
            database: './src/data/mydb.sql',
            entities: ['PATH_TO_ENTITY/**/*.js'],
        }).then(connection => { ...

Проблема связана с большим количеством сообщений, чем с объявлением сущностей. У меня уже есть другой код, который работает с моим объявлением сущностей при создании соединения.

darkomen 15.01.2019 21:31

Другие вопросы по теме