gpt4 book ai didi

nestjs - 如何使用@nestjs/terminus 为 Prisma 创建自定义健康检查?

转载 作者:行者123 更新时间:2023-12-04 17:10:27 29 4
gpt4 key购买 nike

@nestjs/terminus不为 Prisma 提供健康检查,我试图根据他们的 Mongoose health check 创建它.
当我尝试:

import * as Prisma from 'prisma';
...
...
private getContextConnection(): any | null {
const {
getConnectionToken,
// eslint-disable-next-line @typescript-eslint/no-var-requires
} = require('prisma') as typeof Prisma;

try {
return this.moduleRef.get(getConnectionToken('DatabaseConnection') as string, {
strict: false,
});
} catch (err) {
return null;
}
}
...
...
const connection = options.connection || this.getContextConnection();

if (!connection) {
throw new ConnectionNotFoundError(
this.getStatus(key, isHealthy, {
message: 'Connection provider not found in application context',
}),
);
}
我似乎总是得到:“消息”:“在应用程序上下文中找不到连接提供程序”。
连接有问题,或者我真的不明白健康检查的实际工作原理

最佳答案

mongoose 实现的天真副本不会起作用,因为 NestJSMongoose 之间存在差异。类型/模块和 Prisma .特别是getConnectionToken Prisma内部不存在包裹。
我无法评论扩展终端以支持棱镜的最佳方式。您可能需要深入了解 terminus接口(interface)。但是,在 Prisma 中获取健康检查/ping 的一种简单方法是使用以下查询:

    prisma.$queryRaw`SELECT 1`

关于nestjs - 如何使用@nestjs/terminus 为 Prisma 创建自定义健康检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69568781/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com