Я создаю базовый API с помощью Koa, TypeORM и Postgres. Следующий запрос внутри запроса @Get
регистрирует случайный результат на консоли , но не возвращает его.
@Get("/motivations/random")
async getRandomMotivation() {
const randomFunc = async () => {
try {
let entityManager = await Motivation.getRepository()
.createQueryBuilder()
.select("motivations.id")
.from(Motivation, "motivations")
.orderBy("RANDOM()")
.limit(1)
.getOne()
console.log("__testing: ", entityManager)
return await entityManager
}
catch (error) {
console.log("___errorrrrr: ", error)
}
}
return await randomFunc()
}
Когда я запускаю сервер, он сначала возвращает ошибку ConnectionNotFoundError: Connection "default" was not found.
, затем он фактически загружает сервер и базу данных со всеми таблицами.
Затем я вызываю правильную конечную точку, она выводит случайный результат на консоль, и когда он пытается вернуть результат, он возвращает следующее:
Connected to Postgres with TypeORM
Listening on port 4000 @ 22:16
query: SELECT "motivations"."id" AS "motivations_id" FROM "motivations" "Motivation", "motivations" "motivations" ORDER BY RANDOM() ASC LIMIT 1
__testing: Motivation { id: 40 }
query: SELECT "Motivation"."id" AS "Motivation_id", "Motivation"."motivation" AS "Motivation_motivation", "Motivation"."user_id" AS "Motivation_user_id" FROM "motivations" "Motivation" WHERE ("Motivation"."id" = $1) -- PARAMETERS: [null]
query failed: SELECT "Motivation"."id" AS "Motivation_id", "Motivation"."motivation" AS "Motivation_motivation", "Motivation"."user_id" AS "Motivation_user_id" FROM "motivations" "Motivation" WHERE ("Motivation"."id" = $1) -- PARAMETERS: [null]
error: { error: invalid input syntax for integer: "NaN"
.... }
Как видите, он запускает запрос случайного результата и записывает его на консоль. Затем он выполняет еще два запроса с пустыми параметрами ...
Почему TypeORM пытается выполнить два дополнительных запроса? Как мне преодолеть эту проблему?