반응형

HTTP module

var http  = require('http');
//http module 불러오기

var url = require('url');
// url module 불러오기

http.createServer(function(request,response){
    // http module 을 이용하여 서버 생성

    var pathname = url.parse(request.url).pathname;
    //url 뒤에 있는 디렉토리 / 파일 이름 파싱

    if(pathname=="/"{// pathname 이 비어있다면 index를 디폴트로
        pathname="/index.html";    
    }
}

 

콜백함수를 사용해 response 이벤트가 감지되면 데이터를 데이터에 받아온다.

 

var callback = function(response){
    var body='';
    response.on('data',function(data){
        body += data;    
    };
}

Mysql module

NodeJS 에서 DB 연동을 해보려고 한다.

 

const express = require('express')
const app = express();

 

express 를 불러와 app 에 할당한다.

 

var mysql = require('mysql');
var pool = mysql.createPool({
    connectionLimit : 10,
    host :"localhost",
    user : "root",
    password : "0000",
    database : "moviestar"
})

 

require(’mysql’) 은 mysql 모듈을 사용하겠다라는 뜻.

mysql 을 실행하기 위한 pool 을 생성한다.

 

app.get('/db',function(req,res){
    pool.getConnection(function(err, connection){

        if(err) throw err;

        connection.query('select * from user', function(error,results, fields){
            res.send(JSON.stringify(results));
            console.log('results', results);
            connection.release();

            if(error) throw error;
        })
    })
})

 

생성된 pool 을 mysql 과 연결한다.

query 함수를 이용하여 mysql 에 명령을 전달한다.

sql에서 데이터 request 가 온다면 아래와 같이 불러올 수 있다.

 

request.on('end', function(){
          var post = qs.parse(body);
          var title = post.title;
          var description = post.description;

          db.query(`insert into topic (title, description, created, author_id) 
          values (?, ?, NOW(), ?)`,
          [post.title, post.description, 1],
          function(error, result){
            if(error){
              throw error;
            }
            response.writeHead(302, {Location: `/?id=${result.insertId}`});
            response.end();
          });
      });
반응형

'Web > NodeJS' 카테고리의 다른 글

[NodeJS] Chatting Service -1-  (0) 2022.02.06

+ Recent posts