Node.js queryString into DB

 

클라이언트 요청 수신에서 쿼리스트링을 사용.
node.js mysql에서 node.js로 mysql에 연동 및 데이터 입/출력.

이번 포스팅에서는 HTTP GET/POST에서 받은 쿼리스트링을 이용해 클라이언트에게 데이터를 받아 DB에 저장하는 방법을 소개한다.

send me email if you have any questions.


모듈 install 및 DB에 데이터 삽입

1. 디렉터리 생성
$ mkdir queryString_into_DB

2. 생성 디렉터리로 이동 후 npm init진행
$ cd database
$ npm init

3. 필요 모듈 설치
$ npm install mysql
$ npm install express body-parser –save

4. 데이터베이스에 테이블 생성
테이블 구조

number ssid dBm
1.. APname… RSSI…

5. main.js 소스코드 작성

"use strict";

const port = 3000;
const express = require("express");
const app = express();

const mysql = require("mysql");
const connection = mysql.createConnection({ // 연결할 DB 정의
    host : "hostip",
    user : "id",
    password : "passwd",
    database : "test"
});

let sql;
let insert_params;

connection.connect();

// 요청해독을 초기화 (default : utf-8)
app.use(express.urlencoded({extended: false}));

// 요청 해독을 json으로 진행
app.use(express.json());

// 요청 데이터를 분석하는 미들웨어
// 미들웨어란 애플리케이션 로직과의 데이터 교환 전에 대기, 분석, 필터링 및 HTTP통신을 다루는 코드를 일컫는 일반적인 용어
app.use(function(req, res, next){
    console.log(req.body);
    console.log(req.query);

    sql = "INSERT INTO data(number, ssid, dBm) VALUES(?,?,?)"
    insert_params = [, req.query.ssid, req.query.dBm];
    connection.query(sql, insert_params, function(err, rows, fields){
        if(err) console.log(err);
        else console.log("insert success");
    });

    next();
});

// POST 라우트
app.post("/", function(req, res){
    console.log("\npost");

    sql = "SELECT * FROM data";
    connection.query(sql, function(err, rows, fields){
        if(err) console.log(err);
        console.log(rows);
    });

    res.send("HTTP POST Successful");
});

// GET 라우트
app.get("/", function(req, res){
    console.log("\nget");

    
    sql = "SELECT * FROM data";
    connection.query(sql, function(err, rows, fields){
        if(err) console.log(err);
        console.log(rows);
    });

    res.send("HTTP GET Successful");
});

// 서버실행
app.listen(port, function(){
    console.log("Server port : ",port);
});

실행결과

GET 방식(main.js)
그림1
쿼리스트링으로 전달한 키-값 쌍이 데이터베이스에 저장되었다.

GET 방식(DB)
그림2
DB에서 확인하여도 문제없이 저장됨을 알 수 있다.

POST 방식(main.js)
그림1
쿼리스트링으로 전달한 키-값 쌍이 데이터베이스에 저장되었다.

POST 방식(DB)
그림2
DB에서 확인하여도 문제없이 저장됨을 알 수 있다.