node.js學(xué)習(xí)筆記(10)--mysql模塊連接mysql數(shù)據(jù)庫
1.安裝
我們需要一個mysql 和node環(huán)境,這里我自己的電腦沒有安裝mysql,用navicat連的同事的。
注意如果碰到這個 “Host''xxx.xx.xxx.xxx''isnot
allowedtoconnectto
this MySQL server" 。
那么在安裝的那臺電腦上修改 mysql 數(shù)據(jù)庫中的 user 表 里的 host 項 ?從"localhost"改稱"%" 然后重啟mysql 服務(wù)就好了。
我們node 連接mysql 需要使用mysql模塊。
先使用express-generator生成一個項目 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ù)庫
}
//創(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)?
??})
});瀏覽器請求http://localhost:3000/add,看到控制臺輸出,說明插入成功
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)?
??})
});瀏覽器請求http://localhost:3000/update 看到控制臺輸出,說明修改成功
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);???
??})
});瀏覽器請求http://localhost:3000/select,看到控制臺輸出,說明查詢成功?
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)?
??})
});瀏覽器請求http://localhost:3000/delete,看到控制臺輸出,說明刪除成功?
OkPacket?{
??fieldCount:?0,
??affectedRows:?1,
??insertId:?0,
??serverStatus:?2,
??warningCount:?0,
??message:?'',
??protocol41:?true,
??changedRows:?0?}




