개발자

drizzle orm을 사용하려고 하는데요 에러처리 질문드립니다

2024년 05월 12일조회 103

drizzle orm 사용시 데이터베이스 접속이 안되거나 insert나 select 진행중 오류가 날경우 try catch로 오류를 처리하려면 어떻게해야할까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

포크코딩님의 프로필 사진

1. 원래 하고자 하는 동작이 try 블록 안에 들어가면 됩니다. 2. 에러가 났을 때 필요한 동작을 catch 블록 안에 넣습니다. 예제 코드는 effect(https://effect.website/)를 통해 작성한 코드입니다. 개인적으로 try, catch 구문을 직접 쓰는 것보다 선호합니다.

1import { db } from "@/server/db";
2import { sql } from "drizzle-orm";
3import { Effect as E } from "effect";
4
5//query example
6const getUsers = (anyDB) => {
7    // drizzle 어뎁터던 prisma 어뎁터던 인수로 받습니다.
8    return E.tryPromise({
9        try: () => anyDB.execute(sql`SELECT * FROM users`),
10        catch: (e) => console.log("에러가 났습니다요~"),
11    });
12};
13
14E.runPromise(getUsers(db));

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 05월 12일

Drizzle ORM을 사용할 때 오류는 Promise 기반으로 try-catch 문을 사용하거나 .catch() 메서드를 이용하여 처리할 수 있습니다. ```javascript const DrizzleORM = require('drizzle-orm'); async function getData() { const drizzle = new DrizzleORM.Your_Database_Connection_Information(); // 여기에 데이터베이스 연결 정보 입력 try { const result = await drizzle.select().from('your_table_name'); // 'your_table_name'에 테이블 이름 입력 console.log(result); } catch (error) { console.error(`Error occurred: ${error}`); } } getData(); ``` 위의 예제에서는 try-catch 구문을 사용하여 select 작업 중 발생하는 오류를 처리하고 있습니다. 만약 데이터베이스 접속 자체가 불가능한 경우, 오류가 발생하여 catch 문으로 이동하게 됩니다. 데이터 삽입(Insert)도 비슷하게 처리 가능합니다. ```javascript async function insertData() { const drizzle = new DrizzleORM.Your_Database_Connection_Information(); try { await drizzle.insert().into('Your_Table').set({ column1: 'value1', column2: 'value2' // ... 다른 값들 설정 }); console.log("Data Inserted Successfully"); } catch (error) { console.error(`Error occurred: ${error}`); } } insertData(); ``` Drizzle는 Promise를 반환하기 때문에, async-await과 함께 사용해야 합니다. 이 방식 외에도 Promise의 `.then()`과 `.catch()` 메서드를 사용해도 동일하게 오류 처리가 가능합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!