여담인데 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();
|
참조