typescript 如何从nestjs独立应用程序中获取存储库示例

jutyujz0  于 2023-03-31  发布在  TypeScript
关注(0)|答案(2)|浏览(129)

我有一个nestjs应用程序,并且正在编写一些独立的任务来沿着它。
用于独立应用程序的documentation显示了如何获取服务示例,即

const app = await NestFactory.createApplicationContext(AppModule);
const tasksService = app.get(TasksService);

但是没有展示如果我想读/写数据库的话如何获得一个存储库。
我已经试过了显而易见的:

const repo = app.get(Repository<User>);

但这会引发编译器错误“类型'typeof Repository'的值不可调用。您是否打算包含'new'?ts(2348)”。
在线示例(以及nestjs文档中的示例)使用@InjectRepository,但遗憾的是,我的独立任务没有任何可以使用它的示例。
我如何获得一个存储库示例,我可以用它在一个独立的nestjs脚本中读/写数据库?

bihw5rsg

bihw5rsg1#

app.get接收提供者的令牌。
因此,
const repo = app.get(getRepositoryToken(User));
应该工作

xdnvmnnf

xdnvmnnf2#

顺便说一句:我的问题的另一个答案是“你到底想做什么?”因为我想做的就是查询/插入实体,在nestjs中,你可以直接从实体类型本身完成。

而不是

const repo = app.get(getRepositoryToken(User));

...

const users = repo.find()

我可以

const users = User.find()

这节省了一些粗糙的设置代码,并删除了一些导入。

相关问题