개발일지/팀GC

06/01 node.js 서버구축연습 4

박준희 2021. 6. 1. 16:22

 

익스프레스 사용해서 웹서버 만들기 
라우터 개념 찾아보기 
get방식, post방식 라우터 만들기 
mysql사용해서 커넥션 하기 
쿼리 날려서 서버에만 출력 (클라는 200)

1. node.js express란

node.js의 불편한 점을 개선한 프레임워크

 

설치법

npm install express --save

 

참고

https://rain2002kr.tistory.com/337

 

[Node js express] 노드 JS Express 정리글

훈츠의 블로그 입니다. 안녕하세요. 훈츠입니다. 노드JS Express 정리해 봅니다. 글 목록 노드 JS express 간단 소개 및 설치방법 [ 윈도우, 리눅스 ] 노드 JS express 기본 시작 페이지 [ 원리 파악 ] 시작

rain2002kr.tistory.com

https://expressjs.com/

 

Express - Node.js web application framework

Fast, unopinionated, minimalist web framework for Node.js $ npm install express --save

expressjs.com

 

2. 라우팅

애플리케이션이 특정 엔드 포인트 (URI (또는 경로) 및 특정 HTTP 요청 메서드 (GET, POST 등))에 대한 클라이언트 요청에 응답하는 방법을 결정하는 것을 의미

 

참고

https://expressjs.com/en/starter/basic-routing.html

 

Express basic routing

Basic routing Routing refers to determining how an application responds to a client request to a particular endpoint, which is a URI (or path) and a specific HTTP request method (GET, POST, and so on). Each route can have one or more handler functions, whi

expressjs.com

 

3. get방식, post방식 라우터 만들기

app.js

const express = require('express')
const app = express()
const port = 3000

app.get('/', function (req, res) {
    res.send('Hello World!')
})

app.post('/', function (req, res) {
    res.send('Got a POST request')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

app.js실행

 

리퀘스트

 

4. mysql사용해서 커넥션 하기

 

https://hijun1.tistory.com/161

 

05/31 node.js 서버구축연습 2

node.js 서버에서 MariaDB에서 데이터 취득 후 콘솔창, 브라우저에 데이터 출력하기 1. MariaDB설치 https://downloads.mariadb.org/ Downloads - MariaDB downloads.mariadb.org 설치 참고 링크 https://javaplan..

hijun1.tistory.com

 

5. 쿼리 날려서 서버에만 출력 (클라는 200)

 

database.js

let mysql = require('mysql');
let db_info = {
    host : 'localhost',
    port : '3306',
    user : 'root',
    password : '1234',
    database : 'gc_db'
}

module.exports = {
    init: function () {
        return mysql.createConnection(db_info);
    },
    connect: function (conn) {
        conn.connect(function(err) {
            if(err) console.error('mysql connection error : ' + err);
            else console.log('mysql is connected successfully!');
        });
    }
}

app.js

const express = require('express')
const app = express()
const port = 3000
const db_config = require(__dirname + '/config/database.js');
const conn = db_config.init();
app.use(express.json())

app.get('/', function (req, res) {
    conn.query('SELECT * FROM admin WHERE id = \''+req.query.id+'\'', function (error, results, fields) {
        if (error) throw error;
        resResult = 'id: '+ results[0].id + ', pass: ' + results[0].pass;
        console.log(resResult);
        });
    res.send(res.statusCode.toString());
})

app.post('/', function (req, res) {
    conn.query('INSERT INTO `admin` (`id`, `pass`) VALUES(\''+ req.body.id+'\', \''+ req.body.pass+'\')', function (error, results, fields) {
        if (error) throw error;
        resResult = 'id: '+ req.body.id + ', pass: ' + req.body.pass;
        console.log(resResult);
        });

    res.send(res.statusCode.toString());
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

 

get 리퀘스트로 DB SELECT 쿼리

 

post 리퀘스트로 DB INSERT 쿼리

 

 

참고

https://expressjs.com/en/4x/api.html#req

 

Express 4.x - API Reference

Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex

expressjs.com