일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Cell Border Style
- C# MDB Handle
- MDB Select
- sqlite3
- DrawEllipse
- MDB Connect
- eventargs
- 시
- 경기도 버스정보시스템
- 공공 데이터 포털
- 버스 API
- Winform
- 객체지향
- MVC
- 디자인 패턴
- C# MDB
- WPF
- delegate
- C# 파일 암/복호화
- JSON
- Excel Cell Format
- GDI+
- solid
- 경기도 버스
- Json.NET
- TDD
- c#
- NUnit
- eventhandler
- DrawRectangle
Archives
- Today
- Total
White Whale Studio
[Node.js] Sqlite3 본문
반응형
이번에는 Node.js와 Sqlite DB를 연결해보겠습니다.
해당 포스팅은 다음의 튜토리얼을 참고하여 작성하였습니다.
우선 npm으로 sqlite 관련 모듈을 설치합니다.
--> npm install sqlite3
다음으로 js 파일을 하나 만들고 다음과 같이 타이핑해봅시다.
1 2 3 4 5 6 | let db = new sqlite3.Database(':memory:', (err) => { if (err) { return console.error(err.message); } console.log('Connected to the in-memory SQlite database.'); }); | cs |
우선은 메모리에 있는 DB를 사용하는 부분인데 우선은 요걸로 해보고 직접 구성한 로컬 DB 파일을 가져다 쓰는것도 해보겠습니다.
위의 코드를 실행해보면
위와 같이 뜹니다.
그냥 let db = new sqlite3.Database(':memory:');
이렇게 쓸수도 있습니다만, 연결상태를 확인하기위한 콜백 함수를 지정해서 콘솔창에 뜨는 것을 확인할수 있습니다.
DB를 오픈한 후에는 닫아주는것도 중요합니다.
닫을 때는 db.close(); 이렇게 해주어도 되고 위와 마찬가지로 콜백 함수를 추가해서 다음과같이 정의를 하는것도 좋습니다.
1 2 3 4 5 6 | db.close((err) => { if (err) { return console.error(err.message); } console.log('Close the database connection.'); }); | cs |
이제는 이 연결된 DB로 로컬 DB연결과 Select 를 한번 해보겠습니다.
우선 로컬 DB를 연결하기위해서는 ':memory:' 부분을 DB가 있는 경로로 바꿔주시면 됩니다. 예를 들면
('./db/tms.db')
위와같이 코딩을 한다면 db폴더 내에 tms.db를 읽겠다는 의미입니다.
다음과 같이 코딩해볼까요
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 | const sqlite3 = require('sqlite3').verbose(); // open the database let db = new sqlite3.Database('./db/tms.db', sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error(err.message); } console.log('Connected to the tms database.'); }); db.serialize(() => { db.each(`SELECT LineNo, SectionNo FROM TB_Tree`, (err, row) => { if (err) { console.error(err.message); } console.log(row.LineNo + "\t" + row.SectionNo); }); }); db.close((err) => { if (err) { console.error(err.message); } console.log('Close the database connection.'); }); | cs |
중간에 db.serialize() 부분을 보시면
쿼리문이 있고 아래쪽에 콘솔로 찍는 부분이 있습니다.
여기서 주의할점은 콘솔처럼 row의 데이터에 접근하려면 반드시 컬럼명과 row내의 변수명을 맞춰줘야한다는 것입니다.
쿼리에서 LineNo, SectionNo를 명시했으므로
row에서도 참조시에 row.LineNo, row.SectionNo로 명시해야한다는 점입니다.
실행해보면 다음과 같이 표시가 됩니다.
반응형
'IT Engineering > MEAN Stack' 카테고리의 다른 글
[Node.js] API 만들어보기 - 1 (0) | 2018.09.07 |
---|---|
[Node.js] Upload Files (0) | 2018.08.31 |
[Node.js] Events (0) | 2018.08.30 |
[Node.js] NPM : Node Package Manager (0) | 2018.08.30 |
[Node.js] URL Module (0) | 2018.08.30 |
Comments