타입스크립트 MySQL 사용
2021-08-03 21:22:15
1
npm i mysql2 -S

여담인데 npm mysql 모듈은 8.X 연결이 안 된다 😤 지원을 안하는듯..

그래서 자주 쓰는 mysql2로 설치로 테스트 했음

기본적으로 쿼리 결과는 RowDataPacket 타입(배열)으로 지정이 되어 있다

그래서 콘솔로그로 볼 수는 있으나 배열 내 오브젝트에는 접근이 안 됨..

구글링 하니 해결 방법은 인터페이스 확장이였다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { createConnection, RowDataPacket, FieldPacket } from "mysql2/promise";

interface Post extends RowDataPacket {
id: number;
title: string;
content: string;
}

async function main() {
const connection = await createConnection({
host: "localhost",
user: "root",
database: "test",
});
try {
const [rows, fields]: [Post[], FieldPacket[]] = await connection.query(
"SELECT id, title, content FROM posts;"
);
rows.forEach((row) => {
console.log('id: ', row.id, 'title', row.title, 'content: ', row.content)
});
fields.forEach((field) => {
console.log('table: ', field.table);
});
} catch (err) {
throw err;
}
}

main();

참조