sitelink1 https://youtu.be/SUjOvUbKunI 
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  

MySQL 모듈 사용 (MySQL2 모듈과는 다름)

 

* dbConnection.js

var mysql = require('mysql');

 

var dbConfig = {

   host: 'localhost',

   user: 'root',

   password: '1234',

   port: 3306,

   database: 'Moviest'

};

 

var pool = mysql.createPool(dbConfig);

 

module.exports = pool;

 

* select.js

var pool = require('./dbConnection');

 

pool.getConnection(function(err, conn) {

   if ( err ) {

      console.error('Error', err);

      return;

   }

   

   var sql = 'SELECT * FROM movies';

   conn.query(sql, function(err, results) {

      if ( err ) {

         console.error('Error', err);

         return;

      }

      

      for ( var i = 0 ; i < results.length ; i++ ) {

         var movieInfo = results[i];

         console.log('제목 : ' + movieInfo.title + ' 감독 : ' + movieInfo.director);

      }

      

      conn.release();      

   });

});

 

* insert.js

var pool = require('./dbConnection');

 

pool.getConnection(function(err, conn) {

   var sql = 'INSERT INTO movies (title, director, year) VALUES ("인셉션", "크리스토퍼 놀란", 2010);';

   conn.query(sql,function(err, results) {

      if ( err ) {

         console.error('INSERT Error', err);

      }

      else {

         console.log('results : ', results);

      }

   });

      

   var sql2 = 'INSERT INTO movies (title, director, year) VALUES (?, ?, ?);';

   conn.query(sql2, ['인터스텔라', '크리스토퍼 놀란', 2015],function(err, results) {

      if ( err ) {

         console.error('INSERT Error', err);

      }

      else {

         console.log('results : ', results);

      }

   });   

   

   var data = {

      title : '메멘토',

      director : '크리스토퍼 놀란',

      year : 2000

   };

   var sql3 = 'INSERT INTO movies SET ?';

   conn.query(sql3, data, function(err, results) {

      if ( err ) {

         console.error('INSERT Error', err);

      }

      else {

         console.log('results : ', results);

      }

   });

   

   // 비동기의 연속이므로 release를 호출할 곳이 적당하지 않다.

   // conn.release();

});