나의 발자취
RestAPI에 betterSQL 적용하기 본문
npm i better-sqlite3 패키지를 설치해준다.
기존의 RESTapi와 비슷하면서도 다르다. 다른 점 위주로 작성해보겠다.
- 일단 당연히 sqlite3를 이제 쓰지 않을 것이기 때문에 해당 부분은 Database 변수로 선언해주는 부분이 다르다.
그리고 const app 부분부터 create_sql 쿼리부분까지는 내용이 같으니 복붙해준다.
아래에 db.exec(create_sql); 을 해준다.
GET /posts - 게시글 목록 가져오기
그리고 그 아래에 1번 GET 기능을 아래 부분만 복붙해준다.
그리고 코드 작성
// 1. GET /posts 게시글 목록
app.get("/posts", (req, res) => {
const page = req.query.page ? parseInt(req.query.page) : 1;
const limit = 5; // 한페이지 당 5개 글만 볼것이다
const offset = (page - 1) * limit; // page = 2일 경우, offset => 5
let sql = `
SELECT id, title, author, createdAt, count FROM posts
ORDER BY createdAt DESC limit ? offset ?
`;
const stmt = db.prepare(sql);
const rows = stmt.all(limit, offset);
res.json({ item: rows });
});
그러면 확연히 분량이 확 줄어든 것이 보인다.
이제, 노드몬으로 파일을 서버에 올리고 아래와 같이 Curl로 GET 요청을 해보면 정상적으로 모든 데이터를 가지고 오는 것을 확인할 수 있다.
'Backend' 카테고리의 다른 글
GraphQL 특징, node js로 GraphQL 구현 및 쿼리 날려보기 ⭐️ (0) | 2024.10.15 |
---|---|
댓글 기능 추가하기 (RestAPI 별도 라우터 /comments) (0) | 2024.10.15 |
RESTful API 설계 후 CURL로 데이터 주고받기 (0) | 2024.10.14 |
CURL이란? (8) | 2024.10.14 |
API 종류들(SOAP, RESTful, GraphQL, gRPC, WebSocket, Webhook)과 Restful API의 특징 (2) | 2024.10.14 |
Comments