Node.js + MySQL 연동
Programming/Mobile Server 2014. 10. 8. 12:46 |1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | // 웹서버 var express = require('express'); var app = express(); //protobuf var fs = require('fs'); var Schema = require('protobuf').Schema; // protobuf file 읽어 오기 var schema = new Schema(fs.readFileSync('GameMessagePacket.desc')); // MySQL var mysql = require('mysql'); var DBConnectionPool = mysql.createPool( { host: 'localhost', port: 3306, user: 'root', password: 'qwer1234', database: 'game', connectionLimit: 100, waitForConnections: true, multipleStatements: true }); // all environments app.use(express.logger('dev')); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } // 로그인 SP 호출 app.get('/Login/:id/:password', function (request1, response) { var Data = [request1.params.id, request1.params.password] var queryString = "CALL sp_LoginProcedure(?, ?, @result); SELECT @result AS Result;" DBConnectionPool.getConnection(function (err, connection) { var query = connection.query(queryString, Data, function (err, results) { if (err) { connection.release(); console.error(err); throw err; } var Msg = schema['Message.LoginResult']; var ResultMsg = Msg.serialize({ result: results[1][0].Result }); response.send(ResultMsg); console.log(results); connection.release(); }); }); }); // 회원가입 SP 호출 app.get('/Signup/:id/:password', function (request1, response) { var UserID = request1.params.id var UserPW = request1.params.password var queryString = "CALL sp_SignupProcedure('" + UserID + "','" + UserPW + "', @result); SELECT @result AS Result;" DBConnectionPool.getConnection(function (err, connection) { var query = connection.query(queryString, function (err, results) { if (err) { connection.release(); console.error(err); throw err; } var Msg = schema['Message.SignupResult']; var ResultMsg = Msg.serialize({ result: results[1][0].Result }); response.send(ResultMsg); connection.release(); }); }); }); // 캐릭터 정보 얻어 오기 app.get('/CharacterInfo/:userkey', function (request1, response) { var UserKey = request1.params.userkey var queryString = "CALL sp_GetCharacterInfo_procedure('" + UserKey + "');" DBConnectionPool.getConnection(function (err, connection) { var query = connection.query(queryString, function (err, results) { if (err) { connection.release(); console.error(err); throw err; } var Msg = schema['Message.CharacterInfoResult']; var Data = { money: results[0][0].user_money, level: results[0][0].user_level, exp: results[0][0].user_exp, maxexp: results[0][0].user_maxexp, attackvalue: results[0][0].user_attackvalue, defencevalue: results[0][0].user_defencevalue, critical: results[0][0].user_critical, maxhp: results[0][0].user_maxhp, maxmp: results[0][0].user_maxmp, groupname: results[0][0].user_groupname, grade: results[0][0].user_class }; //console.log(Data); var ResultMsg = Msg.serialize(Data); console.log('Data.Length:', ResultMsg.length); response.send(ResultMsg); connection.release(); }); }); }); app.listen(3000); |
'Programming > Mobile Server' 카테고리의 다른 글
Node.js + Unity3D WebServer 연동 Test (0) | 2014.10.12 |
---|---|
Node.js + Google Protocol Buffer + Unity 1차 코드 (0) | 2014.10.08 |