node.js与数据库

与MySQL的API:

  运行出现异常时,不会立即中断Node.js的代码运行,而是会抛出异常;注意对异常进行合适的处理

 

  npm install mysql 下载后引入:var mysql = require('mysql');

var Connection = mysql.createConnection({参数})

>创建MySQL连接,返回Connection对象

其中createConnection()函数接收一个json对象参数,如:

 {  host:'loaclhost',

  posr:'8080',

  user:'user',

  password:'pass'    }

 

Connection.connect(function(err){})

>利用回调函数的err参数判断创建MySQL是否成功

 

Connection.query(sql,function(err,rows) )

>异步执行sql语句,通过回调函数传递执行结果err或rows

 

Connection.query(sql,paramInfo,function(err,rows) )

>将sql中的参数作为对象通过paramInfo(sql中对应的变量)传递

 

Connection.end(function(err) )

>关闭数据库连接(可以获取关闭失败后的返回结果)

Connection.destory();

>强制性关闭连接

 

Connection.escape(str)

>str为需要转义的字符串,返回转义后的字符串(防止sql注入)

 

 http://www.cnblogs.com/always-online/archive/2013/12/23/3487852.html
1
//创建数据库 2 client.query('create database '+dbName, function(err) { 3 if (err) { 4 console.log("Error:"+err.message) 5 } 6 }); 7 8 9 //使用该数据库 10 client.query('USE '+dbName); 11 12 13 //创建表 14 client.query( 15 'CREATE TABLE '+tableName+ 16 '(id INT(11) AUTO_INCREMENT, '+ 17 'username VARCHAR(255), '+ 18 'password VARCHAR(255), '+ 19 'created DATETIME, '+ 20 'PRIMARY KEY (id))' 21 ); 22 23 //添加数据 24 var query = client.query('INSERT INTO '+tableName+' SET username = ?, password = ?, created = ?', 25 ['zhangsan', '1234', '2010-08-16 12:42:15'],function(err, results){ 26 console.log(results.insertId);//返回记录id 27 } 28 ); 29 30 31 //查询数据 32 var query = client.query('select * from '+tableName+' where id = ?', [2],function(err, results){ //查询id为2的数据 33 console.log(results[0].id);//返回记录id 34 console.log(results[0].username);//返回记录id 35 console.log(results[0].password);//返回记录id 36 console.log(results[0].created);//返回记录id 37 } 38 ); 39 40 41 //修改数据 42 client.query("update "+tableName+" set password = ? where id = ?", [ "123456", 1 ], function(err, results) {//修改id为1的记录的password 43 console.log(results); 44 /** result 为格式如下的信息 45 { fieldCount: 0, 46 affectedRows: 1, 47 insertId: 0, 48 serverStatus: 2, 49 warningCount: 0, 50 message: '(Rows matched: 1 Changed: 1 Warnings: 0', 51 protocol41: true, 52 changedRows: 1 53 } 54 */ 55 }); 56 57 //删除数据 58 client.query("delete from "+tableName+" where id = ?", [ 1 ], function(err, results) {//删除id为1的记录 59 console.log(results); 60 /** result 为格式如下的信息 61 { 62 fieldCount: 0, 63 affectedRows: 1, 64 insertId: 0, 65 serverStatus: 2, 66 warningCount: 0, 67 message: '', 68 protocol41: true, 69 changedRows: 0 70 } 71 */ 72 }); 73 74 client.end();//关闭连接

 

拼凑sql语句的几种方式:

  query( 'insert into table SET ?',{id:0}, function(){}

  query( 'insert into table SET id = :id',{id:0}, function(){}

  var id = 0 ; query( 'insert into table SET id=' +id, function(){}

同时执行多个sql语句:

  query( 'sql1;sql2', function(err,rows){ rows[0]; rows[1];   //返回的结果是一个数组,分别对应所执行的sql语句的结果

 


 

与MongoDB:

  安装驱动模块:npm install node-mongodb-native

 1 引入: var MongoDB = require('mongodb');
 2 
 3 var server = new MongoDB.Server('ip',port,{可选配置参数};  //创建数据库连接服务器{auto_reconnect:true}自动重连
 4 
 5 var db = new MongoDB.Db('DB_name',server,{safe:true})
 6 db.open(function(err,db){
 7   if(!err)
 8     console.log('connect success!')
 9     db.collection('数据集合名',{safe:true},function(err,collection){    //连接数据集合,可换成db.createCollection()
10       if(!err)
11             console.log(“连接数据集合成功”)    

            collection.insert({id:'wyr',age:'21'},{safe:true},function(err,result){..result为插入集合后的结果.})  //插入数据
            colection.remove({id:'wyr'},{safe:true},function(err,result){...))    //remove方法无删除条件时删除整个数据集合
            collection.update({name:'wyr'},{$push:{sex:'man'}},function(err,cols){...    //更新数据
            collection.update({name:'wyr'},{$set:{sex:'f'}},function(err,cols){...            


            collection.find().toArray(function(err,cols){    //查询数据集合方式一
              if(!err)
                res.write(JSON.stringify(cols))
                console.log(cols)      //文档对象数组
            collection.find({id:'wyr'}).toArray(function(err,cols){    //查询数据集合方式2
              if(!err)
                res.write(JSON.stringify(cols))
                console.log(cols)      //文档对象数组
            collection.findOne({name:'wyr',(function(err,col){    //查询数据集合方式3
              if(!err)
                res.write(JSON.stringify(col))
                console.log(col)      //一条文档对象

12 13 14 }

 

posted @ 2018-08-11 13:40  wyr_blog  阅读(217)  评论(0)    收藏  举报