博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs之代码操作mysql(直连和连接池连接mysql)\mysql权限操作
阅读量:4289 次
发布时间:2019-05-27

本文共 9104 字,大约阅读时间需要 30 分钟。

mysql权限:

npm的mysql地址:

====================直连mysql========================

var router = function(app){  app.get('/one', function (req, res) {
res.writeHeader(200, {'Content-Type':'text/plain;charset=UTF-8'});    // res.sendFile("/Users/wofu/Desktop/node/views/one.html");    res.write("ddd");    var mysql=require('mysql');//调用mysql模块//创建一个connection数据库连接对象var connection=mysql.createConnection({  host:'localhost',//主机  user:'root',//mysql认证的用户名  password:'123456',//mysql用户密码  database:'firstDB',//数据库名  port:'3306'//端口号});
//链接数据库connection.connect(function(err){  if(err){    console.log(err);    return;  }else{    res.write("数据库连接成功");    res.end();  }});
//插入数据,,update和delete跟insert类似var name="lamb9";var ages=30;var userAddSql='insert into people (name,ages) values(?,?)';var params=[name,ages];******加参数的方法,应用于sql语句中有?占位符的情况connection.query(userAddSql,params,function(err,rs){  if(err){    console.log(err.message);    return;  }else {    console.log("插入成功");    console.log(rs);  }});//*****query语句不加第二个参数************************************var nam="lamb10";var ag=30;var userAddSql='insert into people (name,ages) values("lambo10",20)';connection.query(userAddSql,function(err,rs){  if(err){    console.log(err.message);    return;  }else {    console.log("插入成功");    console.log(rs);  }});
//删除---query带参数**********************************************var userdeletSql='delete from  people where id=?';var upparams=6;connection.query(userdeletSql,upparams,function(err,rs,fields){  if(err){    console.log(err);    return ;  }else{    console.log("删除成功");    }});//删除---query不带参数***************************************************var userdeletSql='delete from  people where id=7';connection.query(userdeletSql,function(err,rs,fields){  if(err){    console.log(err);    return ;  }else{    console.log("删除成功");    }});
//查询-----query带参数************************************************var userinsertSql='SELECT *from people where name=?';var insertparams='lambo';connection.query(userinsertSql,insertparams,function(err,rs,fields){  if(err){    console.log(err);    return ;  }else{    console.log("查询成功");  for(var i=0;i
//更新---query带参数**********************************************var userupdatetSql='update  people set ages=? where name=?';var upparams=[23,"four"];connection.query(userupdatetSql,upparams,function(err,rs,fields){  if(err){    console.log(err);    return ;  }else{    console.log("更新成功");    }});//更新---query不带参数***************************************************var userupdatetSql='update  people set ages=24 where name="four"';connection.query(userupdatetSql,function(err,rs,fields){  if(err){    console.log(err);    return ;  }else{    console.log("更新成功");    }});
//关闭连接connection.end(function(err){  if(err){    console.log(err.toString());    return;  }else{    console.log("关闭连接");  }});});};exports.router = router;

=======================连接池连接mysql=====================

连接池的原理:初始化的时候创建多个连接,放到数组中存起来;当有访问数据的时候,不用再创建连接,直接从连接池取出连接使用进行各种数据库操作,操作关闭后再放回连接池中;连接池会自动管理池中的连接(当访问量少的时候,会自动减少一些连接,当访问量大的时候会自动增加一些连接);

安装连接池 :1.需要安装mysql:npm install mysql -g   2.需要安装mysqlpool模块npm install -g node-mysql

*********************创建连接池

var router = function(app){  var mysql=require('mysql');//调用mysql模块  app.get('/one', function (req, res) {    // res.sendFile("/Users/wofu/Desktop/node/views/one.html");res.writeHeader(200, {'Content-Type':'text/plain;charset=UTF-8'});    res.write("ddd");    //***使用连接池操作数据库    var Pool=mysql.createPool({      host:'localhost',//主机      user:'root',//mysql认证的用户名      password:'123456',//mysql用户密码      database:'firstDB',//数据库名      port:'3306'//端口号    });
//有连接时调用Pool.on('connection', function (connection,err) {if(err){ console.log(err); return;}else{res.write("数据库连接成功");    res.end();  }});//一个连接上的活动全部执行完时调用Pool.on('acquire', function (connection) {  console.log('Connection %d acquired', connection.threadId);});//等待一个有效队列Pool.on('enqueue', function () {  console.log('Waiting for available connection slot');});//一个连接释放了Pool.on('release', function (connection) {  console.log('Connection %d released', connection.threadId);});// //结束所有连接// Pool.end(function (err) {//   if (err){//     console.log(err);//   }else {//     console.log("连接全部关闭");//   }// });
//从链接池中获取一个连接  Pool.getConnection(function(err,connection){      // 执行数据库操作  增删改查和直接连接mysql一样      var userAddSql='insert into people (name,ages) values(?,?)';      var params=['bbb',11];      connection.query(userAddSql,params,function(err,rs){        if(err){          console.log(err.message);          return;        }else{          console.log('insert success');          res.write("成功");res.end();//这句话表示浏览器相应结束,如果在这句话后继续向浏览器写入会报错,res.write()是错误的;        }    connection.release();//放回连接池    });});});};exports.router = router;
var router = function(app){  var fs =require('fs');  var http=require('https');  var mysql=require('mysql');//调用mysql模块  var request = require('request');  var url = require('url');  var querystring = require('querystring');  var bodyParser     =         require("body-parser");  var urlencodedParser = bodyParser.urlencoded({ extended: false })  app.get('/get',function (req, res) {  // console.log(req.query);//{ name: 'lambo' }  //   console.log(req.query.name);//lambo  // console.log(req.url);///one?name=lambo  // console.log(url.parse(req.url).pathname);//  /one  //   console.log(url.parse(req.url).query);//  name=lambo// app.post('/one',urlencodedParser,function (req, res) {    //text/html,application/json", @"text/json", @"text/javascript",@"text/html",    //@"text/xml", @"text/plain; charset=utf-8",image/png// res.writeHeader(200, {'Content-Type':'image/png;charset=UTF-8'});res.writeHeader(200, {'Content-Type':'text/html;charset=UTF-8'});// res.writeHeader(200, {'Content-Type':'application/json;charset=UTF-8'});// 输出 JSON 格式var json = JSON.stringify({     "msg":"成功",     result:[{              "name":"新闻",               "site":"http:www.baidu.com"             },{               "name":"新手教程",               "site":"csdnnnn"             }],     "status":"1"   });console.log(json);res.write(json);res.end(json);    //***使用连接池操作数据库    var Pool=mysql.createPool({      host:'localhost',//主机      user:'root',//mysql认证的用户名      password:'123456',//mysql用户密码      database:'firstDB',//数据库名      port:'3306'//端口号    });//Pool.on('connection', function (connection,err) {  if(err){    console.log(err);    return;  }else{    // res.write("数据库连接成功");    // res.end();  }});////监听----获得一个连接时调用Pool.on('acquire', function (connection) {  console.log('Connection %d acquired', connection.threadId);});//等待一个有效队列Pool.on('enqueue', function () {  console.log('Waiting for available connection slot');});//一个连接释放了Pool.on('release', function (connection) {  console.log('Connection %d released', connection.threadId);});// //结束所有连接// Pool.end(function (err) {//   if (err){//     console.log(err);//   }else {//     console.log("连接全部关闭");//   }// });    //从链接池中获取一个连接  Pool.getConnection(function(err,connection){//       // *************执行数据库操作  增删改查和直接连接mysql一样//       //插入,query加占位//       var userAddSql='insert into people (name,age,birthday) values(?,?,?)';//       var params=['bbb',11,new Date()];//       connection.query(userAddSql,params,function(err,rs){//         if(err){//           console.log(err.message);//           return;//         }else{//           console.log('insert success');//////           var json = JSON.stringify({//             "msg":"成功",//             result:[{//                      "name":"新闻",//                       "site":"http:www.baidu.com"//                     },{//                       "name":"新手教程",//                       "site":"csdnnnn"//                     }],//             "status":"1"//           }//  );//// res.write(json);// res.end();//         }//     });//****************// //******插入,query不加占位,直接写参数// var nam="lamb10";// var ag=30;// var userAddSql='insert into people (name,age,birthday) values("nam",21,now())';// connection.query(userAddSql,function(err,rs){//   if(err){//     console.log(err.message);//     return;//   }else {//     console.log("插入成功");//     console.log(rs);//   }// });//*********// //*****删除---query加占位**********************************************// var userdeletSql='delete from  people where id=?';// var upparams=269;// connection.query(userdeletSql,upparams,function(err,rs,fields){//   if(err){//     console.log(err);//     return ;//   }else{//     console.log("删除成功");////     }// });//**************//// //删除---query不加占位**************************************************// var userdeletSql='delete from  people where id=7';// connection.query(userdeletSql,function(err,rs,fields){//   if(err){//     console.log(err);//     return ;//   }else{//     console.log("删除成功");////     }// });//*************//// //查询-----query带占位************************************************// var userinsertSql='SELECT *from people where name=?';// var insertparams='lambo2';// connection.query(userinsertSql,insertparams,function(err,rs,fields){//   if(err){//     console.log(err);//     return ;//   }else{//     console.log("查询成功");//   for(var i=0;i

转载地址:http://unmgi.baihongyu.com/

你可能感兴趣的文章
Log4j容器深入探究
查看>>
记glide框架使用中所遇到的问题
查看>>
学习AOP之透过Spring的Ioc理解Advisor
查看>>
Jquery一个简单的注册验证
查看>>
SpringMVC基础_ControllerAdvice
查看>>
Toast还能显示图片你知道么?
查看>>
安卓三状态切换按钮TriStateToggleButton
查看>>
Spring框架-AOP细节
查看>>
java.lang.Instrument 代理Agent使用
查看>>
Javascript:指针、帽子和女朋友
查看>>
Android中的ALERTDIALOG使用_优就业
查看>>
java使用javacsv读取csv文件 导入Mysql数据库
查看>>
Toolbar 不为人知的助手,ActionMenuView
查看>>
Java回调方法详解
查看>>
如何获取url中的参数并传递给iframe中的报表
查看>>
以前端架构师的思想看问题:解决单页应用,系统角色请求抢占session发送请求问题
查看>>
jsessionid问题解决方案
查看>>
MySQL和Oracle的delete,truncate
查看>>
idea使用心得(2)-安装设置与创建web项目
查看>>
将项目放到服务器tomcat上运行
查看>>