Node.js는 고성능 웹 서버 작성을 위한 JavaScript 툴킷입니다
일반적으로 NodeJS 개발에서는 데이터베이스, 특히 MySQL을 운영하는 경우가 많습니다. 가장 널리 사용되는 오픈 소스 데이터베이스로서 이 기사에서는 NodeJS를 통해 MySQL 데이터베이스를 운영하는 방법을 소개합니다. NodeJS에 MySQL 모듈을 설치합니다. NodeJS가 MySQL을 지원하도록 하려면 시스템 지원 라이브러리에 MySQL 모듈을 추가해야 합니다.
Node.js에 대해 빨리 배우고 싶다면 Zansheng은 node.js_guide.pdf를 살펴볼 것을 권장합니다. — node.js 개발 가이드: 고화질 전자 버전을 원한다면 메시지를 보내주세요
메시지를 남기고 싶지 않으시면 비행기에 태워드릴 수 있어요! 직접 다운로드
Node.js
node.js의 동작을 간단히 소개하겠습니다
node-mysql 설치
C 코드
$ npm install mysql
테스트 테이블 생성
//데이터베이스 이름 NodeSample
C 코드
CREATE TABLE `NodeSample`.`MyTable` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `firstname` VARCHAR( 20 ) NOT NULL , `lastname` VARCHAR( 20 ) NOT NULL , `message` TEXT NOT NULL ) ENGINE = MYISAM ;
데이터베이스에 연결
JS 코드
var sys = require('sys'); var Client = require('mysql').Client; var client = new Client(); client.user = 'someuser'; client.password = 'password'; client.connect(function(error, results) { if(error) { console.log('Connection Error: ' + error.message); return; } console.log('Connected to MySQL'); });
데이터베이스 열기
JS 코드
ClientConnectionReady = function(client) { client.query('USE NodeSample', function(error, results) { if(error) { console.log('ClientConnectionReady Error: ' + error.message); client.end(); return; } }); };
데이터베이스 운영 절차 완료
JS 코드
var sys = require('sys'); var Client = require('mysql').Client; var client = new Client(); client.user = 'someuser'; client.password = 'password'; console.log('Connecting to MySQL...'); client.connect(function(error, results) { if(error) { console.log('Connection Error: ' + error.message); return; } console.log('Connected to MySQL'); ClientConnectionReady(client); }); ClientConnectionReady = function(client) { client.query('USE NodeSample', function(error, results) { if(error) { console.log('ClientConnectionReady Error: ' + error.message); client.end(); return; } ClientReady(client); }); }; ClientReady = function(client) { var values = ['Chad', 'Lung', 'Hello World']; client.query('INSERT INTO MyTable SET firstname = ?, lastname = ? , message = ?', values, function(error, results) { if(error) { console.log("ClientReady Error: " + error.message); client.end(); return; } console.log('Inserted: ' + results.affectedRows + ' row.'); console.log('Id inserted: ' + results.insertId); } ); GetData(client); } GetData = function(client) { client.query( 'SELECT * FROM MyTable', function selectCb(error, results, fields) { if (error) { console.log('GetData Error: ' + error.message); client.end(); return; } // Uncomment these if you want lots of feedback //console.log('Results:'); //console.log(results); //console.log('Field metadata:'); //console.log(fields); //console.log(sys.inspect(results)); if(results.length > 0) { var firstResult = results[0]; console.log('First Name: ' + firstResult['firstname']); console.log('Last Name: ' + firstResult['lastname']); console.log('Message: ' + firstResult['message']); } }); client.end(); console.log('Connection closed'); };