本文共 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/