Nodejs连接MySQL&&实现unity中的登陆注册功能

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

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

1. node-mysql介绍

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

项目地址:https://github.com/felixge/node-mysql

 

3. node-mysql安装

npm install mysql

 

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

 

      1 var mysql =require('mysql');                                                           

      2 var conn = mysql.createConnection({

      3         host: 'localhost',

      4         user: 'root',

      5         password: '',

      6        // database:'',

      7         port: 3306

      8 });

      9 conn.connect();

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

     11         if (err) throw err;

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

     13 });

14 conn.end();

 

运行node

》》》node app.js

 

The solution is:  { id: 1,

  name: 'wang',

  password: '123',

}

 

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

 

 

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

unity客户端的脚本代码:

 

using UnityEngine;
using System.Collections;

public class webloginclick : MonoBehaviour {

    public string url;
    
    public UIInput userName;
    public UIInput passWord;
    void Start () {
        url="http://127.0.0.1:1337/login";
    }
    
    
    void Update () {
        
    }
    IEnumerator OnClick(){
        WWWForm form1=new WWWForm();
        form1.AddField("username",userName.value);
        form1.AddField("password",passWord.value);
        
        WWW www1=new WWW(url,form1);
        yield return www1;
        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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基本的 Vue + Node.js + MySQL 的登录注册系统实现。首先,您需要安装 Node.js 和 MySQL,然后按照以下步骤进行操作: 1. 创建数据库 首先,您需要在 MySQL 创建一个名为 `users` 的数据库,并在其创建一个名为 `users` 的表,该表应包含以下字段: ``` id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY (id) ``` 2. 创建后端 API 接下来,您需要创建一个 Node.js 项目,并在其安装以下依赖项:`express`、`mysql`、`body-parser`。 然后,创建一个名为 `index.js` 的文件,并将以下代码复制到其: ```javascript const express = require('express'); const mysql = require('mysql'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'users' }); connection.connect((err) => { if (err) { console.error('Error connecting to database: ' + err.stack); return; } console.log('Connected to database.'); }); app.post('/register', (req, res) => { const { username, password } = req.body; const sql = `INSERT INTO users (username, password) VALUES ('${username}', '${password}')`; connection.query(sql, (err, result) => { if (err) { console.error(err); res.status(500).send('Error registering user.'); } else { res.send('User registered successfully.'); } }); }); app.post('/login', (req, res) => { const { username, password } = req.body; const sql = `SELECT * FROM users WHERE username='${username}' AND password='${password}'`; connection.query(sql, (err, result) => { if (err) { console.error(err); res.status(500).send('Error logging in.'); } else { if (result.length === 0) { res.status(401).send('Invalid username or password.'); } else { res.send('Logged in successfully.'); } } }); }); app.listen(3000, () => { console.log('Server listening on port 3000.'); }); ``` 这将创建一个 Express 应用程序,并在其上创建两个端点:`/register` 和 `/login`。`/register` 端点用于注册新用户,`/login` 端点用于验证用户凭据并登录用户。 3. 创建前端应用程序 接下来,您需要创建一个 Vue.js 项目,并在其安装 `axios` 库。 然后,创建一个名为 `App.vue` 的文件,并将以下代码复制到其: ```vue <template> <div> <h1>Register</h1> <form @submit.prevent="register"> <label> Username: <input type="text" v-model="username" required> </label> <br> <label> Password: <input type="password" v-model="password" required> </label> <br> <button type="submit">Register</button> </form> <hr> <h1>Login</h1> <form @submit.prevent="login"> <label> Username: <input type="text" v-model="username" required> </label> <br> <label> Password: <input type="password" v-model="password" required> </label> <br> <button type="submit">Login</button> </form> </div> </template> <script> import axios from 'axios'; export default { data() { return { username: '', password: '' }; }, methods: { register() { axios.post('http://localhost:3000/register', { username: this.username, password: this.password }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); }, login() { axios.post('http://localhost:3000/login', { username: this.username, password: this.password }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); } } }; </script> ``` 这将创建一个包含两个表单的 Vue 组件:一个用于注册新用户,另一个用于登录现有用户。这些表单将使用 `axios` 库与我们的后端 API 进行通信。 4. 运行应用程序 最后,您需要启动前端和后端应用程序。在两个不同的终端窗口,分别进入前端和后端项目目录,并运行以下命令: ```bash # 前端项目目录 npm run serve # 后端项目目录 node index.js ``` 现在,您可以在浏览器访问前端应用程序,并使用它来注册新用户和登录现有用户。所有数据都将存储在 MySQL 数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值