[서버 작성]
~/app$ vi main.js
//외부 모듈 추출
const express = require("express");
//서버 생성
const app = express();
//라우팅 모듈 추출
const crud = require("./routes/crud.js");
//라우팅 설정
app.use("/crud", crud.router);
//서버 실행
app.listen(3000, function () {
console.log("3000번 포트에 서버가 실행됐습니다!");
});
[데이터베이스 접속 정보 모듈화]
~/app$ mkdir modules
~/app/modules$ vi dbconfig.js
const fnDb = function() {
return {
host : "localhost",
user: "아이디",
password: "비밀번호",
database: "데이터베이스명"
}
}
exports.db = fnDb;
※ 요소 이름에도 큰따옴표를 붙여야 한다.
[mariadb 모듈 설치]
app$ npm install mysql
※ mariadb를 설치했어도 npm 연동 패키지는 mysql 패키지를 사용해야 한다.
[라우팅 모듈 작성]
app/routes$ vi crud.js
const express = require("express");
const router = express.Router();
const mysql = require("mysql");
const dbconfig = require("../modules/dbconfig.js");
//반환 결과가 없는 경우
router.get("/delete", function(req, res) {
let sql = "DELETE FROM 테이블명 WHERE 컬럼명1=? AND 컬럼명2=?";
const connection = mysql.createConnection(dbconfig.db());
connection.connect();
connection.query(sql, [파라미터1, 파라미터2], function(err){
if(!err){
console.log("done!");
} else {
console.log(err);
}
});
connection.end();
});
//반환 결과가 있는 경우
router.get("/select", function(req, res) {
let sql = "SELECT * FROM 테이블명 WHERE 컬럼명1=? AND 컬럼명2=?";
const connection = mysql.createConnection(dbconfig.db());
connection.connect();
connection.query(sql, [파라미터1, 파라미터2], function(err, result){
if(!err){
if(result[0]) {
console.log(result);
} else {
console.log("result none");
}
} else {
console.log(err);
}
});
connection.end();
});
exports.router = router;
심화편
[다중쿼리]
1. DB 접속 정보 수정
const dbConfig = {
host : '[호스트 이름]',
port : 3306,
user : '[유저명]',
password : '[비밀번호]',
database : '[스키마 명]',
multipleStatements: true // 여러 쿼리를 ';'를 기준으로 한번에 보낼 수 있게한다.
}
2. NodeJS 연동
var sql1 = 'SELECT CLUB_NM FROM CLUB; '; // 클럽목록
var sql2 = 'SELECT MBER_NM FROM CLUB_MBER; '; // 클럽회원
dbconn.query(sql1 + sql2, function(err, results, field){
var sql1_result = results[0]; //sql1 의 결과값
var sql2_result = results[1]; //sql2 의 결과값
...
});
'컴퓨터 > NodeJS' 카테고리의 다른 글
NodeJS EJS (0) | 2021.11.06 |
---|---|
NodeJS 클라이언트에게서 정보 전달 받기 (0) | 2021.11.03 |
NodeJS 라우팅 모듈화 (0) | 2021.10.28 |
011. 정적 자료 제공 (0) | 2021.10.28 |
PM2 사용법 (0) | 2021.10.28 |