node 操作mySql数据库

数据库建库原则
1.那个人 在那个时间 做了什么事
{
userid:,
createtime:,
status:
}
1.连接数据库

//page.json文件
{
  "name": "code",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "md5-node": "^1.0.1",
    "mysql": "^2.17.1"
  }
}

//app.js
const http = require("http");
const mysql = require("mysql");
const md5 = require("md5-node");
const conn = mysql.createConnection({
  host: "localhost",
  port: "3306",
  user: "root",
  password: "root",
  database: "user"
});

// conn.query("select 1+1 as status", (error, results, filds) => {
//   if (error) {
//     console.log("连接失败", error);
//   } else {
//     console.log("成功", results);
//   }
// });

// 增加数据
let username = "admin";
let password = md5(123456);

let sql = `insert into admin (user,password) values('${username}','${password}')`;
conn.query(sql,(err,data)=>{
  if(err){
      console.log('shibai',err)
  }else{
      console.log('chenggogn',data)
  }
})

2.数据库进阶

//page.json
{
  "name": "code1",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "md5-node": "^1.0.1",
    "multiparty": "^4.2.1",
    "mysql": "^2.17.1"
  },
  "devDependencies": {
    "co-mysql": "^1.0.0"
  }
}

//app.js

const http=require('http');
const mysql=require('mysql');
const md5=require('md5-node');
const multiparty=require('multiparty');

const fs =require('fs');

let app=http.createServer((req,res)=>{
    if(req.url=='/regeister'){
    let post={};
    // jie shou formdata
    let form=new multiparty.Form()
    // fen pian duan
    form.parse(req)
    form.on('field',(name,value)=>{
        post[name]=value
    })
    form.on('close',()=>{
        // console.log(post)
        let coon=mysql.createConnection({
            host:'localhost',
            user:'root',
            password:'root',
            database:'user'
        })
        coon.query('select 1+1 as status',(err,data)=>{
            if(err){
           
                res.write(JSON.stringify({'message':err}))
                res.end()
            }else if(post['username'].length>6){
                res.write(JSON.stringify({'message':'yong hu ming chao guo 6 wei'}))
                res.end()
            }else{
                coon.query(`select user from admin where user = "${post['username']}"`,(err,data)=>{
                    if(err){
                        res.write(JSON.stringify({'message':err}))
                        res.end()
                    }else if(data.length>0){
                        res.write(JSON.stringify({message:'yong hu ming yi jing chun zai'}))
                        res.end()
                    }else {
                        post.password=md5(post.password)
                        let sql=`insert into admin (user,password) values("${post['username']}","${post['password']}")`
                        coon.query(sql,(err)=>{
                            if(err){
                                res.write(JSON.stringify({'message':err}))
                                res.end()
                            }else{
                                res.write(JSON.stringify({'message':'cheng gong'}));
                                res.end();
                            }
                           
                        })
                    }
                })
            }
        })

    })

    }else{
        fs.readFile(`view${req.url}`,(err,data)=>{
            if(!err){
                res.write(data)
            }else{
                res.writeHead(404);
                res.write('this page is not found')
            }
            // shu ju jie su
            res.end()
        })
    }
}).listen(2019)
//view/index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
  
    </style>
</head>

<body>
    <form action="http://localhost:2019/regeister" method="POST">
        <p>yonghu: <input type="text" name="username"></p>
        <p>mima: <input type="text" name="password"></p>
        <p> <input type="submit" value="tijiao"></p>
    </form>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"
        integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
    <script>
         $('form').submit(function(){
             let fordata=new FormData(this);
        
            //  fordata.append('name','zs')
            //  fordata.append('password','123456')

             $.ajax({
                 url:this.action,
                 type:this.method,
                 data:fordata,
                 dataType:'json',
                 processData:false,
                 contentType:false

             }).then((res)=>{
                console.log(res,'chenggong')
             },(err)=>{
                 console.log(err,'shi bai')
             })
             return false
         })
        
    </script>
</body>

</html>

提交数据拦截

//pack.json
{
  "name": "code1",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "md5-node": "^1.0.1",
    "multiparty": "^4.2.1",
    "mysql": "^2.17.1"
  },
  "devDependencies": {
    "co-mysql": "^1.0.0"
  }
}

//app.js
const http=require('http');
const mysql=require('mysql');
const md5=require('md5-node');
const multiparty=require('multiparty');
const co=require('co-mysql');

const url=require('url')

const fs =require('fs');


let db=mysql.createPool({
    connectionLimit:10,
    host:'localhost',
    user:'root',
    password:'root',
    database:'user'
})
let coon=co(db);

let app=http.createServer(async (req,res)=>{
    let { pathname,query}=url.parse(req.url,true)
    let { username,password}=query
    if(pathname=='/regeister'){
     if(!username||!password){
         res.write(JSON.stringify({'message':'用户名为空'}))
         res.end()
     }else if(username.length>7){
        res.write(JSON.stringify({'message':'用户名大于7'}))
        res.end()
     }else{
         let data=await coon.query(`select user from admin where user='${username}'`)
         if(data.length>0){
             res.write(JSON.stringify({'message':'用户名已注册'}))
             res.end()
         }else{
            password=md5(password);
            let sql=`insert into admin (user,password) values('${username}','${password}')`
            let aa=await coon.query(sql)
            console.log(aa)
           res.write(JSON.stringify({'message':'成功'}));
           res.end()
         }
       
     }
  
    }else{
        fs.readFile(`view${req.url}`,(err,data)=>{
            if(!err){
                res.write(data)
            }else{
                res.writeHead(404);
                res.write('this page is not found')
            }
            // shu ju jie su
            res.end()
        })
    }
}).listen(2019)
//view/index.html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <form action="http://localhost:2019/regeister" method="POST">
        <p>yonghu: <input type="text" name="username"></p>
        <p>mima: <input type="password" name="password"></p>
        <p> <input type="button" value="tijiao" class="regeister"></p>
    </form>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"
        integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
    <script>
         $('.regeister').click(async function(){
             let data=await $.ajax({
                 url:'http://localhost:2019/regeister',
                 data:{
                     username:$(':text').val(),
                     password:$(':password').val()
                 },
                 type:'get',
                 dataType:'json'
             })
             console.log(data)
             return false;
         })
    </script>
</body>

</html>

小案例

{
  "name": "mysql-node",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "http": "0.0.0",
    "md5-node": "^1.0.1",
    "mysql": "^2.17.1"
  }
}

//app.js
const http = require("http");
const mysql = require("mysql");
const md5 = require("md5-node");
const conn = mysql.createConnection({
  host: "localhost",
  port: "3306",
  user: "root",
  password: "root",
  database: "user"
});
// conn.query("select 1+1 as status",(error,results,filds)=>{
//     if(error){
//         console.log('链接失败',error)
//     }else{
//         console.log("成功",results)
//     }
// })

http
  .createServer((req, res) => {
    // console.log(req.method,req.url)
    res.setHeader("Access-Control-Allow-Origin", "*"); //可以是地址 域名
    //设置允许跨域的域名,*代表允许任意域名跨域
    //res.header("Access-Control-Allow-Origin","http://www.zhangpeiyue.com");
    //允许的header类型 原生
    //res.header("Access-Control-Allow-Headers","content-type");
    //跨域允许的请求方式 原生
    //res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
    // res.header('Access-Control-Max-Age',1728000);//预请求缓存20天
    // Access-Control-Allow-Credentials: true  cookie



    // var str = ""; //接收数据用
    // var i = 0;
    //data有一段数据到达(重复很多次)
    // req.on("data", function(data) {
    //   console.log("第${i++}次接到数据");
    //   str += data;
    // });
    //数据全部到达(一次)
    req.on("end", function() {
      var POST = querystring.parse(str);
      console.log(POST);
    });

    res.end("<h1>Hello world!</h1>");
  })
  .listen(3000);

//index.html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <input type="text" placeholder="用户名!"><br>
    <input type="text" placeholder="请输入密码!"><br>
    <button onclick="submit()">get提交</button>
    <button onclick="submit1()">post提交</button>


    <script>
        let oinput = document.getElementsByTagName('input');
        function submit() {
            console.log(oinput[0].value)
            let xhr = new XMLHttpRequest();
            //  xhr.withCredentials = true; 浏览器发送cookie
            xhr.open('get', 'http://127.0.0.1:3000/?name=' + oinput[0].value, true);
            // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
            // xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send(null);
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if (xhr.status = 200) {
                        console.log(xhr.responseText);
                    }
                }
            }
        }
        function submit1(){
            console.log(oinput[0].value)
            let xhr = new XMLHttpRequest();
            //  xhr.withCredentials = true; 浏览器发送cookie
            xhr.open('post', 'http://127.0.0.1:3000/', true);
            // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
            // xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send("name="+oinput[0].value);
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if (xhr.status = 200) {
                        console.log(xhr.responseText);
                    }
                }
            } 
        }

    </script>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web修理工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值