亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nodejs入門(mén)教程五:連接數(shù)據(jù)庫(kù)的方法分析

 更新時(shí)間:2017年04月24日 11:36:10   作者:Dason_yu  
這篇文章主要介紹了nodejs入門(mén)教程之連接數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了nodejs連接數(shù)據(jù)庫(kù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了nodejs入門(mén)教程之連接數(shù)據(jù)庫(kù)的方法。分享給大家供大家參考,具體如下:

參考文章鏈接:  nodejs連接mysql

1.準(zhǔn)備工作

在nodejs中沒(méi)有mysql模塊,但npm中提供了mysql,所以可以使用npm安裝mysql

命令:npm install mysql, 會(huì)生成 node_modules 文件夾 ,如圖

執(zhí)行后發(fā)現(xiàn)報(bào)了一個(gè)警告,說(shuō)沒(méi)有package.json 這個(gè)文件,只需要執(zhí)行 npm init -f 的命令就會(huì)生成一個(gè)這個(gè)文件

2.直接連接數(shù)據(jù)庫(kù)

mysql.createConnection(Object) 方法與 mysql.createPool(Object)的參數(shù)

host 連接數(shù)據(jù)庫(kù)所在的主機(jī)名. (默認(rèn): localhost)
port 連接端口. (默認(rèn): 3306)
localAddress 用于TCP連接的IP地址. (可選)
socketPath 鏈接到unix域的路徑。在使用host和port時(shí)該參數(shù)會(huì)被忽略.
user MySQL用戶(hù)的用戶(hù)名.
password MySQL用戶(hù)的密碼.
database 鏈接到的數(shù)據(jù)庫(kù)名稱(chēng) (可選).
charset 連接的字符集. (默認(rèn): 'UTF8_GENERAL_CI'.設(shè)置該值要使用大寫(xiě)!)
timezone 儲(chǔ)存本地時(shí)間的時(shí)區(qū). (默認(rèn): 'local')
stringifyObjects 是否序列化對(duì)象. See issue #501. (默認(rèn): 'false')
insecureAuth 是否允許舊的身份驗(yàn)證方法連接到數(shù)據(jù)庫(kù)實(shí)例. (默認(rèn): false)
typeCast 確定是否講column值轉(zhuǎn)換為本地JavaScript類(lèi)型列值. (默認(rèn): true)
queryFormat 自定義的查詢(xún)語(yǔ)句格式化函數(shù).
supportBigNumbers 數(shù)據(jù)庫(kù)處理大數(shù)字(長(zhǎng)整型和含小數(shù)),時(shí)應(yīng)該啟用 (默認(rèn): false).
bigNumberStrings 啟用 supportBigNumbers和bigNumberStrings 并強(qiáng)制這些數(shù)字以字符串的方式返回(默認(rèn): false).
dateStrings 強(qiáng)制日期類(lèi)型(TIMESTAMP, DATETIME, DATE)以字符串返回,而不是一javascript Date對(duì)象返回. (默認(rèn): false)
debug 是否開(kāi)啟調(diào)試. (默認(rèn): false)
multipleStatements 是否允許在一個(gè)query中傳遞多個(gè)查詢(xún)語(yǔ)句. (Default: false)
flags 鏈接標(biāo)志.

連接數(shù)據(jù)庫(kù)

var mysql = require('mysql'); //調(diào)用MySQL模塊
//創(chuàng)建一個(gè)connection
var connection = mysql.createConnection({
 host: '192.168.3.3',  //主機(jī)
 user: 'root',    //MySQL認(rèn)證用戶(hù)名
 password: 'x5',  //MySQL認(rèn)證用戶(hù)密碼
 database: 'dason_yu',
 port: '3306'     //端口號(hào)
});
//創(chuàng)建一個(gè)connection
connection.connect(function(err){
 if(err){
  console.log('[query] - :'+err);
  return;
 }
 console.log('[connection connect] succeed!');
});
//執(zhí)行sql語(yǔ)句
var userAddSql = 'insert into user (id,name,money) values(?,?,?)';
var param = [3,'ccc',200];
/**
 * 執(zhí)行所有類(lèi)型的 sql 語(yǔ)句
 * query(sql,arr[],function)
 * @parms: sql:sql語(yǔ)句 arr: 填充站位符的數(shù)組,可以缺省
 *   function: 回調(diào)函數(shù),result: 結(jié)果集,對(duì)象組成的數(shù)組
 */
connection.query(userAddSql,param,function(err,rs){
 if(err){
  console.log('insert err:',err.message);
  return;
 }
 console.log('insert success');
});
//關(guān)閉connection
connection.end(function(err){
 if(err){
  console.log(err.toString());
  return;
 }
 console.log('[connection end] succeed!');
});

3.使用連接池連接數(shù)據(jù)庫(kù)

將下面代碼寫(xiě)到 httpServer.js 文件中

使用在命令行窗口中 node httpServer.js 運(yùn)行

var mysql = require('mysql'); //用于創(chuàng)建數(shù)據(jù)庫(kù)連接
var pool = mysql.createPool({// 創(chuàng)建數(shù)據(jù)庫(kù)連接池
 host : '127.0.0.1' ,
 user : 'root' ,
 password : 'root' ,
 database : 'dason',
 multipleStatements: true
});
/**
 * 獲取數(shù)據(jù)庫(kù)連接
 * @parms: err:異常 connnection:數(shù)據(jù)庫(kù)連接對(duì)象
 *
 */
pool.getConnection(function(err,connection){
 if(err){
  console.log(err);
 }
 /**
  * 執(zhí)行所有類(lèi)型的 sql 語(yǔ)句
  * query(sql,arr[],function)
  * @parms: sql:sql語(yǔ)句 arr: 填充站位符的數(shù)組,可以缺省
  *   function: 回調(diào)函數(shù),result: 結(jié)果集,對(duì)象組成的數(shù)組
  */
 connection.query('SELECT * FROM user',function(err,result){
  console.log(result);
  connection.release();//將連接放回連接池
 });
});

結(jié)果:

[ RowDataPacket { id: 1, name: 'a', email: 'a@123' },
 RowDataPacket { id: 2, name: 'b', email: 'b@123' },
 RowDataPacket { id: 4, name: 'd', email: 'd@123' },
 RowDataPacket { id: 5, name: 'e', email: 'e@123' },
 RowDataPacket { id: 6, name: 'f', email: 'f@123' },
 RowDataPacket { id: 3, name: 'c', email: 'c@123' },
 RowDataPacket { id: 7, name: 'g', email: 'g@123' } ]

4. end() 與 destroy()、release()

end() 接受一個(gè)回調(diào)函數(shù),并且會(huì)在query結(jié)束之后才觸發(fā),如果query出錯(cuò),仍然會(huì)終止鏈接,錯(cuò)誤會(huì)傳遞到回調(diào)函數(shù)中處理。

destroy() 立即終止數(shù)據(jù)庫(kù)連接,即使還有query沒(méi)有完成,之后的回調(diào)函數(shù)也不會(huì)在觸發(fā)。

release() 將連接放回連接池中。

5.package.json

npm install express –save

npm install express –save-dev

上面代碼表示單獨(dú)安裝express模塊,

–save參數(shù)表示將該模塊寫(xiě)入dependencies屬性,

–save-dev表示將該模塊寫(xiě)入devDependencies屬性。

希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 使用Koa實(shí)現(xiàn)一個(gè)獲取視頻播放地址的接口

    使用Koa實(shí)現(xiàn)一個(gè)獲取視頻播放地址的接口

    在本節(jié)課中,我們將學(xué)習(xí)如何使用 Koa 實(shí)現(xiàn)一個(gè)獲取視頻播放地址的接口,我們將創(chuàng)建一個(gè)控制器,通過(guò)視頻 ID 獲取播放地址,并設(shè)置相應(yīng)的路由,最后,我們將使用 Postman 進(jìn)行測(cè)試,感興趣的朋友可以參考下
    2024-05-05
  • Node.js 的異步 IO 性能探討

    Node.js 的異步 IO 性能探討

    Node.js 的賣(mài)點(diǎn)是「異步單線(xiàn)程」,雖然主流 Web 后端編程語(yǔ)言中,對(duì)異步編程有很好支持的語(yǔ)言并不少,但只有 Node.js 喪心病狂地將所有 IO 強(qiáng)制異步進(jìn)行。
    2014-10-10
  • nodejs實(shí)現(xiàn)截取上傳視頻中一幀作為預(yù)覽圖片

    nodejs實(shí)現(xiàn)截取上傳視頻中一幀作為預(yù)覽圖片

    這篇文章主要為大家詳細(xì)介紹了nodejs實(shí)現(xiàn)截取上傳視頻中一幀作為預(yù)覽圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Node.js編寫(xiě)爬蟲(chóng)的基本思路及抓取百度圖片的實(shí)例分享

    Node.js編寫(xiě)爬蟲(chóng)的基本思路及抓取百度圖片的實(shí)例分享

    這篇文章主要介紹了Node.js編寫(xiě)爬蟲(chóng)的基本思路及抓取百度圖片的實(shí)例分享,其中作者提到了需要特別注意GBK轉(zhuǎn)碼的轉(zhuǎn)碼問(wèn)題,需要的朋友可以參考下
    2016-03-03
  • 詳解nodejs微信公眾號(hào)開(kāi)發(fā)——2.自動(dòng)回復(fù)

    詳解nodejs微信公眾號(hào)開(kāi)發(fā)——2.自動(dòng)回復(fù)

    這篇文章主要介紹了詳解nodejs微信公眾號(hào)開(kāi)發(fā)——2.自動(dòng)回復(fù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • Node.js、Socket.IO和GPT-4構(gòu)建AI聊天機(jī)器人的項(xiàng)目實(shí)踐

    Node.js、Socket.IO和GPT-4構(gòu)建AI聊天機(jī)器人的項(xiàng)目實(shí)踐

    本文主要介紹了Node.js、Socket.IO和GPT-4構(gòu)建AI聊天機(jī)器人的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Nodejs+express+ejs簡(jiǎn)單使用實(shí)例代碼

    Nodejs+express+ejs簡(jiǎn)單使用實(shí)例代碼

    本篇文章主要介紹了Nodejs+express+ejs簡(jiǎn)單使用實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • node.js中的fs.truncateSync方法使用說(shuō)明

    node.js中的fs.truncateSync方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.truncateSync方法使用說(shuō)明,本文介紹了fs.truncateSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • koa2的中間件功能及應(yīng)用示例

    koa2的中間件功能及應(yīng)用示例

    這篇文章主要介紹了koa2的中間件功能及應(yīng)用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • nodejs連接mysql數(shù)據(jù)庫(kù)簡(jiǎn)單封裝示例-mysql模塊

    nodejs連接mysql數(shù)據(jù)庫(kù)簡(jiǎn)單封裝示例-mysql模塊

    本篇文章主要介紹了nodejs連接mysql數(shù)據(jù)庫(kù)簡(jiǎn)單封裝(mysql模塊),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04

最新評(píng)論