Node連接MySQL并封裝其增刪改查的實(shí)現(xiàn)代碼
Node連接Mysql
說(shuō)到node,可能大家會(huì)想到MOngoDB作為數(shù)據(jù)庫(kù),這里將會(huì)介紹node與mysql的連接,并分享了封裝好的實(shí)例代碼,在項(xiàng)目開(kāi)發(fā)中可直接使用。
安裝Mysql模塊
npm install mysql
連接Mysql
const mysql = require('mysql'); let connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'test' }); connection.connect(function(err) { if (err) { console.error('連接失敗: ' + err.stack); return; } console.log('連接成功 id ' + connection.threadId); });
- host:連接的服務(wù)器
- user:數(shù)據(jù)庫(kù)用戶(hù)名
- password:設(shè)置的MySQL密碼
- database: 要連接的數(shù)據(jù)庫(kù)名
常用的SQL語(yǔ)句
具體的使用這里不做詳細(xì)說(shuō)明,包括select、insert、update、delete等語(yǔ)句。
Node操作Mysql
查詢(xún)
connection.query('SELECT * FROM t_user WHERE username = "whg"', (err, results, fields) => { if(err){ console.log(err); } console.log(results); })
添加
connection.query('INSERT INTO t_user(username, pass) VALUES(?, ?)',['whg', '123'], (err, results) => { if(err){ console.log(err); } console.log(results); })
刪除
connection.query('DELETE FROM t_user WHERE id = 1', (err, results) => { if(err){ console.log(err); } console.log(results); })
更新
connection.query('UPDATE t_user SET pass = "321" WHERE username = "whg"', (err, results) => { if(err){ console.log(err); } console.log(results); })
結(jié)束連接
connection.end(function(err) { }); connection.destroy();
這兩種都行,第二種是強(qiáng)制結(jié)束。
封裝
說(shuō)了這么多,感覺(jué)操作起來(lái)還是挺簡(jiǎn)單的。在實(shí)際開(kāi)發(fā)中,我們想要操作起來(lái)更方便,那就讓我們自己封裝一下來(lái)使用。直接上代碼:
封裝好的代碼
1.數(shù)據(jù)庫(kù)配置文件
//配置鏈接數(shù)據(jù)庫(kù)參數(shù) module.exports = { host : 'localhost', port : 3306,//端口號(hào) database : 'nodetest',//數(shù)據(jù)庫(kù)名 user : 'root',//數(shù)據(jù)庫(kù)用戶(hù)名 password : '123456'//數(shù)據(jù)庫(kù)密碼 };
2.封裝、暴露方法
let mysql = require('mysql');//引入mysql模塊 var databaseConfig = require('./mysql.config'); //引入數(shù)據(jù)庫(kù)配置模塊中的數(shù)據(jù) //向外暴露方法 module.exports = { query : function(sql,params,callback){ //每次使用的時(shí)候需要?jiǎng)?chuàng)建鏈接,數(shù)據(jù)操作完成之后要關(guān)閉連接 var connection = mysql.createConnection(databaseConfig); connection.connect(function(err){ if(err){ console.log('數(shù)據(jù)庫(kù)鏈接失敗'); throw err; } //開(kāi)始數(shù)據(jù)操作 //傳入三個(gè)參數(shù),第一個(gè)參數(shù)sql語(yǔ)句,第二個(gè)參數(shù)sql語(yǔ)句中需要的數(shù)據(jù),第三個(gè)參數(shù)回調(diào)函數(shù) connection.query( sql, params, function(err,results,fields ){ if(err){ console.log('數(shù)據(jù)操作失敗'); throw err; } //將查詢(xún)出來(lái)的數(shù)據(jù)返回給回調(diào)函數(shù) callback && callback(results, fields); //results作為數(shù)據(jù)操作后的結(jié)果,fields作為數(shù)據(jù)庫(kù)連接的一些字段 //停止鏈接數(shù)據(jù)庫(kù),必須再查詢(xún)語(yǔ)句后,要不然一調(diào)用這個(gè)方法,就直接停止鏈接,數(shù)據(jù)操作就會(huì)失敗 connection.end(function(err){ if(err){ console.log('關(guān)閉數(shù)據(jù)庫(kù)連接失??!'); throw err; } }); }); }); } };
3.演示實(shí)例
var db=require('../model/mysql.js'); // 查詢(xún)實(shí)例 db.query('select * from t_user', [],function(result,fields){ console.log('查詢(xún)結(jié)果:'); console.log(result); }); //添加實(shí)例 var addSql = 'INSERT INTO websites(username,password) VALUES(?,?)'; var addSqlParams =['咕嚕先森', '666']; db.query(addSql,addSqlParams,function(result,fields){ console.log('添加成功') })
結(jié)束
想要使用的朋友,可以直接把封裝好的兩個(gè)文件copy到項(xiàng)目中,改一下配置就可以使用了,大大提高開(kāi)發(fā)效率。
到此這篇關(guān)于Node連接MySQL并封裝其增刪改查的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)Node連接MySQL增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs處理圖片的幾種方法總結(jié)(使用sharp、jimp及webconvert)
這篇文章主要給大家介紹了關(guān)于nodejs處理圖片的幾種方法,文中介紹的方法分別是sharp、jimp及webconvert,在開(kāi)發(fā)過(guò)程中我們有時(shí)候需要對(duì)圖片進(jìn)行處理,給一個(gè)圖片添加水印、多個(gè)圖片合成為一圖片等操作,需要的朋友可以參考下2023-12-12node.js中的path.extname方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.extname方法使用說(shuō)明,本文介紹了path.extname的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Node.js+express+socket實(shí)現(xiàn)在線實(shí)時(shí)多人聊天室
這篇文章主要為大家詳細(xì)介紹了Node.js+express+socket實(shí)現(xiàn)在線實(shí)時(shí)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07從Node.js事件觸發(fā)器到Vue自定義事件的深入講解
這篇文章主要給大家介紹了關(guān)于從Node.js事件觸發(fā)器到Vue自定義事件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06使用Jasmine和Karma對(duì)AngularJS頁(yè)面程序進(jìn)行測(cè)試
這篇文章主要介紹了使用Jasmine和Karma對(duì)AngularJS頁(yè)面程序進(jìn)行測(cè)試的方法,以Node.js為環(huán)境,非常適合JavaScript的全棧開(kāi)發(fā)時(shí)使用,需要的朋友可以參考下2016-03-03Node.js如何通過(guò)http調(diào)用外部接口
這篇文章主要介紹了Node.js如何通過(guò)http調(diào)用外部接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10