首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >博览TypeORM EntityMetadataNotFoundError

博览TypeORM EntityMetadataNotFoundError
EN

Stack Overflow用户
提问于 2022-05-02 08:50:39
回答 1查看 824关注 0票数 1

我试图通过驱动程序expo在世博项目上使用typeorm,但我一直被困在元数据EntityMetadataNotFoundError: No metadata for "User" was found.错误上。就我所理解的entities: [User]config.ts上的这一行而言,它连接到错误,搜索它,我找到了一些人们讨论实体上的糟糕配置,但是它们直接指向文件系统路径,我正在传递用户类的DataSource。我基于这个回购TypeORM奇怪吗?示例编写了这段代码

我已经试过了:

entities: ['./entities/*.entity.ts']

错误堆栈

代码语言:javascript
运行
复制
[Unhandled promise rejection: EntityMetadataNotFoundError: No metadata for "User" was found.]
at http://192.168.2.2:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false:166214:321 in _createSuperInternal
at node_modules/typeorm/browser/error/TypeORMError.js:5:25 in constructor
at http://192.168.2.2:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false:167099:321 in _createSuperInternal
at node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js:5:24 in constructor
at node_modules/typeorm/browser/data-source/DataSource.js:281:8 in getMetadata
at node_modules/typeorm/browser/repository/Repository.js:19:19 in get__metadata
at node_modules/typeorm/browser/repository/Repository.js:72:9 in save
at App.tsx:31:18 in wrapper
at App.tsx:25:8 in wrapper
at App.tsx:33:15 in useEffect$argument_0
at node_modules/react-native/Libraries/ReactNative/renderApplication.js:58:4 in renderApplication
at node_modules/react-native/Libraries/ReactNative/AppRegistry.js:117:25 in runnables.appKey.run
at node_modules/react-native/Libraries/ReactNative/AppRegistry.js:202:4 in runApplication

代码语言:javascript
运行
复制
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from "typeorm"

@Entity('user')
export class User extends BaseEntity {

    @PrimaryGeneratedColumn()
    id: number

    @Column()
    firstName: string

    @Column()
    lastName: string

    @Column()
    age: number
}

代码语言:javascript
运行
复制
import "reflect-metadata"
import * as SQLite from 'expo-sqlite'
import { DataSource, DataSourceOptions } from "typeorm/browser"

import { User } from "./entities/User.entity"


export const AppDataSourceOptions: DataSourceOptions = {
    type: 'expo',
    database: 'zipzop.db',
    driver: SQLite,
    synchronize: true,
    logging: false,
    entities: [User],
    migrations: [],
    subscribers: [],
}


export const AppDataSource = new DataSource(AppDataSourceOptions)

代码语言:javascript
运行
复制
import React, { useEffect } from 'react';
import { StatusBar } from 'expo-status-bar';
import { SafeAreaProvider } from 'react-native-safe-area-context';

import useCachedResources from './src/hooks/useCachedResources';
import useColorScheme from './src/hooks/useColorScheme';
import Navigation from './src/navigation';


import { AppDataSource } from './src/database/config';
import { User } from './src/database/entities/User.entity'


export default function App(props : any) {
    useEffect(() => {
        if(!AppDataSource.isInitialized){
            AppDataSource.initialize()
            .then(() => console.log("Database initialization SUCESS"))
            .catch((err) => console.log("Database initialization FAILED", err))
            .finally(async () => {
            })
        } else {
            console.log("Database initialization ALREADY")
        }
        async function wrapper() {
            let repository = AppDataSource.getRepository(User)
            let user = new User()
            user.firstName = "Francisco"
            user.lastName = "Pena"
            user.age = 24
            await repository.save(user)
        }
        wrapper()

        async function wrapper2() {
            let repository = AppDataSource.getRepository(User)
            const allUsers = await repository.find()
            console.log(allUsers)
        }
    })


    const isLoadingComplete = useCachedResources();
    const colorScheme = useColorScheme();

    if (!isLoadingComplete) {
        return null;
    } else {
        return (
            <SafeAreaProvider>
            <Navigation colorScheme={colorScheme} />
            <StatusBar />
            </SafeAreaProvider>
            );
    }
}

带有错误的存储库

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 11:10:59

我也有过同样的问题,看看https://github.com/typeorm/expo-example/pull/5

针对typeorm的世博示例刚刚更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72084364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档