node.js學(xué)習(xí)筆記(10)--mysql模塊連接mysql數(shù)據(jù)庫(kù)
1.安裝
我們需要一個(gè)mysql 和node環(huán)境,這里我自己的電腦沒(méi)有安裝mysql,用navicat連的同事的。
注意如果碰到這個(gè) “Host''xxx.xx.xxx.xxx''isnot
allowedtoconnectto
this MySQL server" 。
那么在安裝的那臺(tái)電腦上修改 mysql 數(shù)據(jù)庫(kù)中的 user 表 里的 host 項(xiàng) ?從"localhost"改稱"%" 然后重啟mysql 服務(wù)就好了。
我們node 連接mysql 需要使用mysql模塊。
先使用express-generator生成一個(gè)項(xiàng)目 mysqlTest。
先安裝依賴模塊,
$npm?install
然后安裝mysql模塊。
$npm?install?mysql?--save
2.使用
在router文件夾下建立 mysql.js文件
var?db?=?{}; var?mysql?=?require('mysql'); var?user={?? ????host:?'10.81.36.167',??????????//地址 ????user:?'root',???????????????//用戶名 ????password:?'123456',????????//密碼 ????database:?'nodejs'?????????//數(shù)據(jù)庫(kù) } //創(chuàng)建連接 var?connection?=?mysql.createConnection(user); ? //查詢 db.query?=?function?(sql,?callback)?{? ????connection.query(sql,?function?(err,?rows,?fields)?{ ????????if?(err)?{ ????????????console.log(err); ????????????callback(err,?null); ????????????return; ????????}; ????????callback(null,?rows,?fields); ????}); } module.exports?=?db;
3.插入
修改index.js
//添加到var?router后面 var?db?=?require('./mysql.js');
插入方法:
router.get('/add',?function(req,?res,?next)?{? ??var?sql?=??`insert?into?users?(name,age)?values?("丫頭",16)?`; ??db.query(sql?,function(err,rows,fields){ ????if?(err)?{?? ????????console.log(err);?? ????????return;?? ????}?? ????console.log("插入成功");?? ????console.log(rows)? ??}) });
瀏覽器請(qǐng)求http://localhost:3000/add,看到控制臺(tái)輸出,說(shuō)明插入成功
OkPacket?{ ??fieldCount:?0,??? ??affectedRows:?1,?//受影響的行數(shù) ??insertId:?11,???//插入的主鍵ID ??serverStatus:?2, ??warningCount:?0, ??message:?'', ??protocol41:?true, ??changedRows:?0?}
4.修改
修改方法:
router.get('/update',?function(req,?res,?next)?{? ??var?sql?=??`update?users?set?name="二丫"?where?ID?=11??`; ??db.query(sql?,function(err,rows,fields){ ????if?(err)?{?? ????????console.log(err);?? ????????return;?? ????}??? ????console.log(rows)? ??}) });
瀏覽器請(qǐng)求http://localhost:3000/update 看到控制臺(tái)輸出,說(shuō)明修改成功
OkPacket?{ ??fieldCount:?0, ??affectedRows:?1, ??insertId:?0, ??serverStatus:?2, ??warningCount:?0, ??message:?'(Rows?matched:?1??Changed:?1??Warnings:?0', ??protocol41:?true, ??changedRows:?1?}
5.查詢 查詢方法:
router.get('/select',?function(req,?res,?next)?{? ??var?sql?=?`SELECT?*??from?users?`; ??db.query(sql?,function(err,rows,fields){ ????if?(err)?{?? ????????console.log(err);?? ????????return;?? ????}?? ????console.log(rows);??? ??}) });
瀏覽器請(qǐng)求http://localhost:3000/select,看到控制臺(tái)輸出,說(shuō)明查詢成功?
6.刪除 刪除方法
router.get('/delete',?function(req,?res,?next)?{? ??var?sql?=??`delete?from?users??where?ID?=11??`; ??db.query(sql?,function(err,rows,fields){ ????if?(err)?{?? ????????console.log(err);?? ????????return;?? ????}??? ????console.log(rows)? ??}) });
瀏覽器請(qǐng)求http://localhost:3000/delete,看到控制臺(tái)輸出,說(shuō)明刪除成功?
OkPacket?{ ??fieldCount:?0, ??affectedRows:?1, ??insertId:?0, ??serverStatus:?2, ??warningCount:?0, ??message:?'', ??protocol41:?true, ??changedRows:?0?}