// 웹서버
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);