기본 콘텐츠로 건너뛰기

NodeJs - MariaDB 연동하기

NodeJs - MariaDB 연동하기

NodeJs에서 마리아 DB를 사용해보자.

1. 마리아DB 설치

마리아DB 홈페이지에서 마리아DB를 설치합니다.

2. DB 및 테이블 생성

테스트 DB와 테이블을 생성한 후 샘플데이터를 Insert합니다.

1 2 3 4 5 6 7 8 9 10 11 12 DROP DATABASE IF EXISTS nodejs_test; CREATE DATABASE nodejs_test; DROP USER IF EXISTS nodejs_admin; CREATE USER nodejs_admin@ '%' IDENTIFIED BY 'admin' ; GRANT ALL PRIVILEGES ON nodejs_test. * to nodejs_admin@ '%' ; USE nodejs_test; DROP TABLE IF EXISTS users; CREATE TABLE users ( user_key INT NOT NULL AUTO_INCREMENT PRIMARY KEY , user_id VARCHAR ( 128 ) UNIQUE NOT NULL ); INSERT INTO users(user_id) VALUES ( 'TEST01' ); cs

3. Nodejs 프로젝트 생성

CMD 혹은 powershell을 실행 후 workspace로 이동합니다.

npm init을 실행합니다.

프로젝트 관련 여러 사항을 묻습니다. 적당히 입력하고 넘어갑시다.

해당 작업을 수행하면 package.json 파일이 입력된 값에 의해 자동으로 생성됩니다.

1 2 3 4 5 6 7 8 9 10 11 12 { "name" : "mariadb-test" , "version" : "1.0.0" , "description" : "mariadb connection testing project." , "main" : "index.js" , "scripts" : { "test" : "echo \"Error: no test specified\" && exit 1" } , "author" : "smoh" , "license" : "ISC" } Colored by Color Scripter cs

4. 커넥터 설치하기

npm install --save mariadb 를 수행하여 마리아DB 커넥터를 설치합니다.

--save를 입력하면 설치한 모듈정보가 자동으로 입력됩니다.

5. NodeJs를 통해 MariaDB 사용하는 코드 작성

커넥터를 사용하는 소스를 작성합니다.

mariaDBConn.js

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 const mariadb = require( 'mariadb' ); const vals = require( './consts.js' ); const pool = mariadb.createPool({ host: vals.DBHost, port:vals.DBPort, user: vals.DBUser, password: vals.DBPass, connectionLimit: 5 }); async function GetUserList(){ let conn, rows; try { conn = await pool.getConnection(); conn.query( 'USE nodejs_test' ); rows = await conn.query( 'SELECT * FROM users' ); } catch (err){ throw err; } finally{ if (conn) conn.end(); return rows[ 0 ]; } } module.exports = { getUserList: GetUserList } Colored by Color Scripter cs

** 접속정보는 별도 모듈에 저장해뒀습니다. 실제 사용시 pool내의 정보를 변경해 주시기 바랍니다.

6. MariaDB 커넥터 모듈을 사용해 유저 리스트를 가져오는 코드 작성

DB에 있는 정보를 가져와 봅시다.

index.js

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 const mdbConn = require( './mariaDBConn.js' ) const express = require( 'express' ); const app = express(); mdbConn.getUserList() .then((rows) = > { console .log(rows); }) . catch ((errMsg) = > { console .log(errMsg); }); const port = process.env.PORT | | 3000 ; app.listen(port, () = > { console .log(`listening on ${port}`); }); Colored by Color Scripter cs

** express 프레임워크를 사용했습니다. 실행전에 express 프레임워크를 설치해 주시기 바랍니다.

7. 실행 및 결과 확인.

실행 결과는 다음과 같습니다.

from http://www.smoh.kr/202 by ccl(A)

댓글

이 블로그의 인기 게시물

[2020-angstromCTF] web - A peculiar query write-up

[2020-angstromCTF] web - A peculiar query write-upEnglish write-upUI seems like below.If you click the 'the source' link, you can get back-end source code.const express = require("express"); const rateLimit = require("express-rate-limit"); const app = express(); const { Pool, Client } = require("pg"); const port = process.env.PORT || 9090; const path = require("path"); const client = new Client({ user: process.env.DBUSER, host: process.env.DBHOST, database: process.env.DBNAME, password: process.env.DBPASS, port: process.env.DBPORT }); async function query(q) { const ret = await client.query(`SELECT name FROM Criminals WHERE name ILIKE '${q}%';`); return ret; } app.set("view engine", "ejs"); app.use(express.static("public")); app.get("/src", (req, res) => { res.sendFile(path.join(__dirname, "index.js")); }); app.get("/", async (req, res) => { if (req.query.q) { try …

nodejs 백그라운드 실행 PM2 활용하기

nodejs 백그라운드 실행 PM2 활용하기개발/기타정보개발/기타정보 nodejs 백그라운드 실행 PM2 활용하기//pm2는 프로세스매니저2로 프로세스를 관리해준다 npm install pm2 -g // pm2 설치 pm2 start server.js //실행하고싶은 코드를 작성한다음 실행 pm2 list // pm2로 실행한것들 목록보기 pm2 restart server.js //재시작 pm2 stop server.js//중지 //stop 하면 서버가 중지되지만 pm2 list에는 남아있게된다 //pm2 list 에서도 제거하고싶으면 pm2 delete [id] // id는 pm2 list하면 나옴 , 아니면 pm2 delete server.js //해도됨 pm2 monit //서버들 모니터링도할수있다 pm2 log //서버 로그출력되는것도 볼수있따 pm2 start server.js-o ./log.txt // 이런식으로 실행하면 서버에서 console.log 로 출력되는것을 log.txt파일에 저장할수있다자세한 내용은 공식홈페이지로 !from http://dulki.tistory.com/118 by ccl(S)