Estoy trabajando en un backend node.js (+Express) y estoy tratando de usar Mikro-orm sin usar Typescript.
Seguí este proyecto como referencia + documentación de Mikro-orm pero sigo recibiendo este error:
MetadataError: Only abstract entities were discovered, maybe you forgot to use @Entity() decorator?
¿Hay alguna forma de evitar el uso de decoradores de Typescript? O tal vez una mejor pregunta sería ¿es posible usar Mikro-orm en un proyecto JS puro?
El archivo de configuración mikro-orm.config.js
tiene el siguiente aspecto:
module.exports = { entities: [EntityX, EntitiyZ], type: 'mysql', dbName: 'example', highlighter: new SqlHighlighter(), debug: true };
Las versiones que tengo instaladas son:
"@mikro-orm/core": "^4.5.10", "@mikro-orm/mysql": "^4.5.10"
Cualquier ayuda será muy apreciada, gracias!
Me encontré con este problema exacto cuando descubrí esta pregunta (gracias por publicar).
Pude resolver el problema asegurándome de que la exportación predeterminada de cada uno de mis archivos de entidad tenga la forma que Mikro-ORM parece estar esperando, que en su caso sería algo así como:
export default { EntityX, schema, entity: EntityX }
**EDITAR
En una segunda mirada, me doy cuenta de que está utilizando la sintaxis de CommonJS, por lo que sin ver los archivos de su entidad, supongo que podría estar perdiendo algo como:
module.exports.EntityX = EntityX; module.exports.entity = EntityX; module.exports.schema = schema;
en su archivo de entidad, o olvidó conectar las entities/index.js
como se muestra en el ejemplo que vinculó.