현재 요약하고 있는 책에는 mongoDB, MySQL의 연결방식이 쓰여 있지만 나는 postgresql을 실무에서 쓰고 있기 때문에 postgresql 연결방법에 대하여 적도록 하겠다.
1. postgresql을 지원하는 pg 모듈 설치
npm install pg
쉘에 이렇게 입력하여 일단 pg 모듈을 설치한다.
2. pg 모듈과 knex 모듈을 이용하여 db연결
var { Pool } = require('pg');
const pool = new Pool({
user: "User Name",
host: "Host Name",
database: "Database Name",
password: "Password",
port: 5432,
});
pool.connect();
pool.query("쿼리 입력", (err, res) => {
if (!err) console.log(res);
else console.log(err);
pool.end();
});
그리고 이런 식으로 작성해서 pg 모듈을 사용하면 되는데 DB가 많은 경우 설정 파일을 따로 빼서 관리하는 게 더 좋다.
const { Pool } = require('pg');
const { testDBConfig } = require('../config/index');
const pool = new Pool(legacyDBConfig);
module.expots = pool
config 폴더 아래에 index.js 에 각종 DB 설정을 몰아놓고 module.exports로 빼다 쓸 수 있다.
근데 내가 보고 있는 코드는 node.js의 ORM 모듈 중 하나인 knex.js 를 사용하고 있어서 실제로는 더 복잡하게 설정되어 있다.
Knex.js (pronounced /kəˈnɛks/) is a "batteries included" SQL query builder for PostgreSQL, CockroachDB, MSSQL, MySQL, MariaDB, SQLite3, Better-SQLite3, Oracle, and Amazon Redshift designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full-featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.
--> (요약 암튼 좋은거.)
const { mainDBConfig, dbDebug } = require('../config/index');
const knex = require('knex') ({
client: 'pg',
connection: mainDBConfig,
pool: {
min: 0,
max: 5
},
debug: dbDebug,
})
이런 형태의 knex 용 설정이 따로 또 존재한다.
'Backend > node.js' 카테고리의 다른 글
8. passport로 사용자인증 (0) | 2022.04.20 |
---|---|
7. express 프로젝트를 모듈화 하기 (0) | 2022.04.19 |
5. 노드로 웹 서버 만들기 (0) | 2022.04.19 |
4. 노드의 기본 기능 (1) | 2022.04.19 |
3. node를 이해하기 위한 자바스크립트의 기본 (0) | 2022.04.19 |