一看到这个报错,猜测到了可能的原因:User实体没注册进去,是不是哪个装饰器没加?检查了一圈,该加的都加了。
直接说作者的原因:
不是因为User这个实体没注册进去,而是因为代码编写的问题导致还没有成功建立连接,就去做db操作了,所以报了这个错,代码什么问题呢,因为异步函数执行的关系。
情况如下,下面两个函数按顺序写的:
init() // 是async函数,里面是初始化db的操作,app.ts下
query() // 非异步函数,里面是业务查询操作,db.ts下
就这样,在数据源没拿到的情况下操作了db,所以报了该错。
如果经排查你不是作者这个原因,可以检查下类实体的扫描范围、类装饰器等使用是否有问题;
另外,初始化数据源时的扫描范围参数(按需):
entities: [path.join(__dirname, '../*{.js,.ts}')],