개발자
drizzle orm 사용시 데이터베이스 접속이 안되거나 insert나 select 진행중 오류가 날경우 try catch로 오류를 처리하려면 어떻게해야할까요?
답변 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 봇
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()` 메서드를 사용해도 동일하게 오류 처리가 가능합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!