이 글은 아래의 포스트 내용에 대해 DBMS를 이용해 재작성되었습니다.
위 글에 대해서 클라언트의 코드는 모두 동일하고 서버의 코드만 변경되었습니다. 서버에 대한 전체 코드는 다음과 같습니다.
const express = require("express"); const app = express(); const { Client } = require("pg"); const dbClient = new Client({ user: "postgres", host: "localhost", database: "postgres", password: "****", port: 5432 }); dbClient.connect(); app.get("/names", (req, res) => { dbClient.query("SELECT name FROM names", (error, result) => { if(error) { res.sendStatus(500); } else { res.status(200).json(result.rows); } }); }); app.get("/alias", (req, res) => { const name = req.query.name; dbClient.query(`SELECT alias FROM names WHERE name = '${name}'`, (error, result) => { if(error) { res.sendStatus(500); } else { res.status(200).json(result.rows); } }); }); app.use(express.json()); app.post("/add", (req, res) => { const item = req.body; if(item.name && item.alias) { dbClient.query(`INSERT INTO names (name, alias) VALUES ('${item.name}', '${item.alias}');`, (error, result) => { if(result) { console.log(`Changed Row Count ${result.rowCount}`); res.sendStatus(200); } else { res.sendStatus(500); } } ); } else { res.sendStatus(400); } }); app.use(express.static(__dirname + "/static")); app.listen(3000);
위의 코드에서 만약 DBMS에 대한 Connection Pool을 도입하고자 한다면 4~12번 코드를 다음처럼 변경하기만 하면 됩니다.
const { Pool } = require("pg"); const dbClient = new Pool({ user: "postgres", host: "localhost", database: "postgres", password: "3224", port: 5432 });