Closed lushiyi61 closed 3 years ago
我目前的解决方案
// const adminInfo: IAdminInfo = await this.ctx.repo.AdminInfo.findOne({ account });
const adminInfo = await getRepository(AdminInfo).findOne({ account });
@lushiyi61 稍等我测试一下
@lushiyi61 有复现的Demo吗?我这边运行测试没有问题呀
我昨天才立项的,整了半天。 我的代码在这,github经常连不上。https://gitee.com/iwof/admin_server.git 目前我的代码是正常可运行的,只是this.ctx 上没有repo,你看看
@lushiyi61 你的项目我无法正常运行,但是我修改了一些问题就没问题了。
注意修改的地方:
该插件定义的实体类模型文件夹下不要再放置interface
,你可以放置去别的地方。你配置了该文件夹就全部只存放实体类。
你可以参考以下项目:
谢谢 帮忙哈
发送自 Windows 10 版邮件https://go.microsoft.com/fwlink/?LinkId=550986应用
发件人: @.> 发送时间: 2021年7月21日 11:01 收件人: @.> 抄送: @.>; @.> 主题: Re: [hackycy/egg-typeorm] this.ctx 上并没有repo(运行时) (#7)
@lushiyi61https://github.com/lushiyi61 你的项目我无法正常运行,但是我修改了一些问题就没问题了。
注意修改的地方: 该插件定义的实体类模型文件夹下不要再放置interface,你可以放置去别的地方。你配置了该文件夹就全部只存放实体类。 [image]https://user-images.githubusercontent.com/26972260/126423715-02635b58-c194-484b-8dae-1f7c4fca751b.png
你可以参考以下项目:
― You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/hackycy/egg-typeorm/issues/7#issuecomment-883848166, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGLQL34ALEPWSRR2AZU5VL3TYY2B7ANCNFSM5AW74A2Q.
啊,你无法正常运行。真是奇怪了。现在按照你的方式,我这依然报错, 打印输出 this.ctx.repo = {}
/api/login/account] nodejs.TypeError: Cannot read property 'findOne' of undefined
代码如下 const adminInfo: IAdminInfo = await this.ctx.repo.AdminInfo.findOne({ account }); // const repository = getRepository(AdminInfo); // const adminInfo = await repository.findOne({ account });
@lushiyi61 建议你发一个最小的复现Demo给我吧,你那个我也无法正常运行。
@lushiyi61 这是我还原可运行的,你自己测试一下吧 admin_server-master.zip
@lushiyi61 还有一点: 你定义的实体类必须要以default导出,否则无法识别。
import { Entity, Column, PrimaryColumn } from 'typeorm';
import { BaseEntity } from './BaseEntity';
// default 导出
@Entity({ name: 'AdminInfo' })
export default class AdminInfo extends BaseEntity {
@PrimaryColumn()
account: string;
@Column()
password: string;
@Column()
name: string;
@Column()
power: string;
@Column()
ip: string;
}
@lushiyi61 没问题我关了哈。
我用了你给我的文件,安装,然后修改数据库配置,仅此而已。但问题依旧。真是让人头疼。难道跟node版本有关? 我的node是 v14.16.1. 我还发现,我启用了redis,也正常连接上redis了,但是this.app上也没有,真是令人头大
你只要看你定义的entity有没有export default导出就可以了
@lushiyi61
demo运行无误,我的Node版本是v14.16.0。确保entity是export default
导出。
declare module 'egg' { interface Context { entity: { AdminInfo: typeof EntityAdminInfo } repo: { AdminInfo: Repository
}
}
}
这是自动生成的,代码在VS code中,没有任何错误,正常启动后,连接数据库正常。但是在service中,this.ctx 上没有 repo