나의 발자취

SQLite NodeJS 모듈 이용해서 게시판 구현하기 (1) 초기설정 본문

Backend

SQLite NodeJS 모듈 이용해서 게시판 구현하기 (1) 초기설정

달모드 2024. 9. 27. 14:46

1. sqlite module import

npm을 사용해서 sqlite 모듈을 임포트하고(npm i sqlite3), 아래처럼 sqlite3 작업을 해준다.

const sqlite3 = require("sqlite3");
const path = require("path");

// DB setting
const db_name = path.join(__dirname, "post.db");
const db = new sqlite3.Database(db_name);

 

 

2. post.db 파일 생성

그리고 터미널 창에서 npm run dev를 해준다

그러면 post.db 파일이 새로 생기게 된다. (터미널 창의 노드몬 에러 무시)

 

3. create_sql 변수 정의

이제 app.set() 아래에 SQL문을 작성해주는 create_sql 변수를 정의해줄것이다.

const create_sql = `
  create table if not exists posts (
      id integer primary key autoincrement,
      title varchar(255),
      content text,
      author varchar(100),
      createdAt varchar(100),
      count integer default 0
  )
`;

* autoincrement는 1씩 증가하는걸 뜻한다.

 

4. create_sql 변수 -> DB 넣기

그리고 그 밑에, 이 create_sql을 DB에 날려줄 것이다.

db.serialize(() => {
db.run(create_sql);
});

 

 

5. SQLite 접속

그리고, 위의 db.serialize() 코드 아래부터 ~ app.listen() 까지 주석처리를 해준다.

그리고 서버를 돌리는 상태(npm run dev)에서, 새로운 터미널을 하나 더 연 후에 sqlite3 post.db 를 입력한 후 엔터를 해준다.

 

그럼 sqlite> 모드로 들어가게 되는데,

.tables 명령어를 쳐서 위에서 내가 생성한 "posts" 테이블이 생성된 것을 확인한다.

(sqlite 모드에서 빠져나오는 것은 .quit 이라고 친다.)

 

6. SQLite 접속해서 dummy data 생성

테스트용 SQL 데이터를 넣어줄 것이다.

test.sql 파일을 만들어주고, 아래 쿼리를 작성한다.

insert into posts(title, content, author, createdAt) values('공지사항1', '공지사항1', 'System Operator', '2024-09-27');

 

이 쿼리를 sqlite3 터미널창에 그대로 붙여넣는다. (엔터)

확인을 위해 select * from posts; 를 해서 데이터가 잘 들어갔는지 확인해본다. 잘 들어갔으면 아래와 같이 나올 것이다.

 

1|공지사항1|공지사항1|System Operator|2024-09-27|0

 

좀 더 많은 데이터를 집어넣기 위해 위와 동일한 방법으로 작업을 해서 넣어준다. (터미널창에 test.sql 그대로 긁어서 복붙)

 

집어넣고 나서 알았는데, 공지사항 컬럼이 두개인데 데이터를 복제해서 생성할 때 한 컬럼만 숫자를 변경해서 복붙해버렸었다; ㅋㅋ

Comments