unity 使用mysql实现登录注册_Nodejs连接MySQL&&实现unity中的登陆注册功能

本文介绍了如何使用Node.js的felixge/node-mysql库连接MySQL数据库,并在Unity中通过NGUI实现登录注册功能。通过Node.js服务器接收客户端数据,处理登录注册请求,连接数据库进行数据操作,最后在Unity中展示登录状态。
摘要由CSDN通过智能技术生成

MySQL是一款常用的开源数据库产品,通常也是免费数据库的首选。查了一下NPM列表,发现Nodejs有13库可以访问MySQL,felixge/node-mysql似乎是最受关注项目,我也决定尝试用一下。

要注意名字,”felixge/node-mysql”非”node-mysql”,安装目录

1. node-mysql介绍

felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序。felixge/node-mysql封装了Nodejs对MySQL的基本操作

3. node-mysql安装

npm install mysql

在项目目录下新建app.js测试:

1varmysql =require(‘mysql‘);

2varconn = mysql.createConnection({

3       host:‘localhost‘,

4       user:‘root‘,

5       password:‘‘,

6// database:‘‘,

7       port: 3306

8});

9conn.connect();

10conn.query(‘insert into`Pomelo`.`User` ( `name`, `id`, `password`) values ( "wang", "1", "123")‘,function(err, rows, fields){

11       if(err)throwerr;

12           console.log(‘The solution is: ‘, rows[0]);

13});

14conn.end();

运行node

》》》node app.js

The solution is:  { id: 1,

name: ‘wang‘,

password: ‘123‘,

}

这样我们就让Nodejs连接上了MySQL。

接下来就该使用具体实例来试验了,我们在unity中用NGUI制作登陆注册页面,实现客户端的登陆注册功能。

如unity客户端的脚本代码:

usingUnityEngine;

usingSystem.Collections;

publicclasswebloginclick :MonoBehaviour{

publicstringurl;

publicUIInput userName;

publicUIInput passWord;

voidStart () {

url="http://127.0.0.1:1337/login";

}

voidUpdate () {

}

IEnumerator OnClick(){

WWWFormform1=newWWWForm();

form1.AddField("username",userName.value);

form1.AddField("password",passWord.value);

WWWwww1=newWWW(url,form1);

yieldreturnwww1;

print (www1.text);

if(www1.text=="2"){

Application.LoadLevel(1);

Debug.Log("Login success");

}else{

Debug.Log("Login File");

}

}

}

客户端请求好了URL,我们就需要在nodejs服务器端进行接收了,首先确保nodejs是可以连接上数据库的,我们在服务器端新建app.js  代码如下:

varpath=require(‘path‘);

varserverStatic=require(‘./servers.js‘);

var http =require(‘http‘);

varqs=require(‘querystring‘);

varurl=require(‘url‘);

var mysql =require(‘../mysqltest/node_modules/mysql‘);

//连接数据库:

function mydb(){

var conn = mysql.createConnection({

host: ‘127.0.0.1‘,

user: ‘root‘,

password: ‘‘,

database:‘mydata‘,

port: 3306

});

conn.connect();

return conn;

}

http.createServer(function(request, response) {

varurlpre=url.parse(request.url).pathname;//按照‘/’的方式分割字符串,取出第一段

var resData=‘‘;//声明一个空的全局变量为空的

console.log(urlpre);

if(urlpre==‘/public‘){

serverStatic.s(request,response);

}

if(urlpre==‘/reg‘){

request.on(‘data‘,function(data){

resData+=data;

});

request.on(‘end‘,function(){

var conne=mydb();

var obj=qs.parse(resData);

varpost={name:obj.username,pssword:obj.password1};

conne.query("INSERT INTO mytable SET?",post,function(err,result){

response.write(‘zhuce success‘);

});

//conne.end();

});

}

if(urlpre==‘/login‘){

request.on(‘data‘,function(data){

resData+=data;

});

request.on(‘end‘,function(){

var conne=mydb();

var obj=qs.parse(resData);

varpost={name:obj.username,pssword:obj.password1};

var Sql=conne.query(‘select * frommytable where name = ?‘,obj.username,function(err,row,result){

console.log(row[0]);

if(row[0]==undefined){

console.log(‘1‘);

response.end("1");//登陆失败

}else{

console.log(‘2‘);

response.end("2");//登陆成功

}

});

//conne.end();测试的时候记得启动服务

});

}

}).listen(1337,‘127.0.0.1‘);

静态服务器端的代码如下:在app.js文件中需要引入静态服务器代码:

servers.js:

var fs  = require(‘fs‘);

//var mime =require(‘mime‘);

var cache = {};

functionsend404(response) {

response.writeHead(404, {‘Content-Type‘:‘text/plain‘});

response.write(‘Error 404: resource notfound.‘);

response.end();

}

functionsendFile(response, filePath, fileContents) {

response.writeHead(

200,

//{"content-type":mime.lookup(path.basename(filePath))}

{"content-type": ‘text/html‘}

);

response.end(fileContents);

}

functionserveStatic(request,response) {

var filePath=false;

if(request.url==‘public/‘){

filePath=‘public/index.html‘;

} else{

filePath=request.url;

}

var absPath=‘.‘+filePath;

if (cache[absPath]) {

sendFile(response, absPath,cache[absPath]);

} else {

fs.exists(absPath, function(exists) {

if (exists) {

fs.readFile(absPath, function(err,data) {

if (err) {

send404(response);

} else {

cache[absPath] = data;

sendFile(response, absPath, data);

}

});

} else {

send404(response);

}

});

}

}

exports.s=serveStatic;

exports.send404=send404;

原文:http://blog.csdn.net/wy_boke/article/details/44246173

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值