#javascript #node.js #typescript #typeorm
#javascript #node.js #typescript #typeorm
Вопрос:
Я реализую TypeORM с помощью Typescript и пытаюсь создать сервис, который расширяет репозиторий TypeORM:
export class UserService extends Repository<User> {
// ... my other service methods
}
После этого я пытаюсь вызвать метод репозитория findOne
из service ( userService.findOne(...)
), но у меня ошибка TypeORM:
TypeError: Cannot read property 'findOne' of undefined
at UserService.Repository.findOne (node_modules/typeorm/repository/Repository.js:174:29)
В библиотеке TypeORM в этой строке я понимаю, что manager
значение не определено:
Repository.prototype.findOne = function (optionsOrConditions, maybeOptions) {
return this.manager.findOne(this.metadata.target, optionsOrConditions, maybeOptions);
};
Ниже приведена моя конфигурация TypeORM:
createConnection({
type: "mysql",
url: "...",
synchronize: true,
logging: false,
entities: [ User ],
cli: { entitiesDir: "src/models" },
})
У кого-нибудь была такая же проблема, или я что-то пропустил в конфигурации?
Заранее благодарю вас!! 🙂
Ответ №1:
У меня возникла эта проблема, потому что моя конфигурация ormconfiguration не учитывала файлы js при запуске в рабочей среде, прежде чем я:
entities: ["${rootDir}/entities/**/*.ts"],
migrations: ["${rootDir}/database/migrations/**/*.ts"],
subscribers: ["${rootDir}/database/subscribers/**/*.ts"],
После:
entities: ["${rootDir}/entities/**/*.{js,ts}"],
migrations: ["${rootDir}/database/migrations/**/*.{js,ts}"],
subscribers: ["${rootDir}/database/subscribers/**/*.{js,ts}"],
Обратите внимание на разницу .ts и .{js,ts}