node.js操作mysql簡單實例
更新時間:2017年05月25日 10:29:44 作者:wolfy
本文給大家介紹了nodejs 連接Mysql相關操作的示例代碼,主要用到的是sql語句,都是比較基礎的。
上篇文章介紹了node.js操作redis的簡單實例,這里介紹如何操作mysql。
安裝
安裝mysql模塊
cnpm install mysql

一個例子
新建一個mysql.js的文件,代碼如下:

連接配置
1.host:主機地址 (默認:localhost)
2.user:用戶名
3.password:密碼
4.port:端口號 (默認:3306)
5.database:數(shù)據(jù)庫名
6.charset:連接字符集(默認:'UTF8_GENERAL_CI',注意字符集的字母都要大寫)
7.localAddress:此IP用于TCP連接(可選)
8.socketPath:連接到unix域路徑,當使用 host 和 port 時會被忽略
9.timezone:時區(qū)(默認:'local')
10.connectTimeout:連接超時(默認:不限制;單位:毫秒)
11.stringifyObjects:是否序列化對象(默認:'false' ;與安全相關https://github.com/felixge/node-mysql/issues/501)
12.typeCast:是否將列值轉化為本地JavaScript類型值 (默認:true)
13.queryFormat:自定義query語句格式化方法 https://github.com/felixge/node-mysql#custom-format
14.supportBigNumbers:數(shù)據(jù)庫支持bigint或decimal類型列時,需要設此option為true (默認:false)
15.bigNumberStrings:supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字符串類型返回(默認:false)
16.dateStrings:強制timestamp,datetime,data類型以字符串類型返回,而不是JavaScript Date類型(默認:false)
17.debug:開啟調試(默認:false)
18.multipleStatements:是否許一個query中有多個MySQL語句 (默認:false)
19.flags:用于修改連接標志,更多詳情:https://github.com/felixge/node-mysql#connection-flags
20.ssl:使用ssl參數(shù)(與crypto.createCredenitals參數(shù)格式一至)或一個包含ssl配置文件名稱的字符串,目前只捆綁Amazon RDS的配置文件
2.user:用戶名
3.password:密碼
4.port:端口號 (默認:3306)
5.database:數(shù)據(jù)庫名
6.charset:連接字符集(默認:'UTF8_GENERAL_CI',注意字符集的字母都要大寫)
7.localAddress:此IP用于TCP連接(可選)
8.socketPath:連接到unix域路徑,當使用 host 和 port 時會被忽略
9.timezone:時區(qū)(默認:'local')
10.connectTimeout:連接超時(默認:不限制;單位:毫秒)
11.stringifyObjects:是否序列化對象(默認:'false' ;與安全相關https://github.com/felixge/node-mysql/issues/501)
12.typeCast:是否將列值轉化為本地JavaScript類型值 (默認:true)
13.queryFormat:自定義query語句格式化方法 https://github.com/felixge/node-mysql#custom-format
14.supportBigNumbers:數(shù)據(jù)庫支持bigint或decimal類型列時,需要設此option為true (默認:false)
15.bigNumberStrings:supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字符串類型返回(默認:false)
16.dateStrings:強制timestamp,datetime,data類型以字符串類型返回,而不是JavaScript Date類型(默認:false)
17.debug:開啟調試(默認:false)
18.multipleStatements:是否許一個query中有多個MySQL語句 (默認:false)
19.flags:用于修改連接標志,更多詳情:https://github.com/felixge/node-mysql#connection-flags
20.ssl:使用ssl參數(shù)(與crypto.createCredenitals參數(shù)格式一至)或一個包含ssl配置文件名稱的字符串,目前只捆綁Amazon RDS的配置文件
創(chuàng)建數(shù)據(jù)表
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for users -- ---------------------------- DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `CreateTime` datetime NOT NULL, `Header` varchar(255) DEFAULT NULL, `NickName` varchar(255) DEFAULT NULL, `Sex` int(11) NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
增
//引入mysql模塊
var mysql = require("mysql");
//創(chuàng)建連接
var connection = mysql.createConnection({
host: "localhost",
port: "3306",
user: "root",
password: "abcd",
database: "it_odd_o",
});
//開始連接
connection.connect(function (err) {
if (err) {
console.log("[connect] - " + err);
return;
} else {
console.log("connection connect successed!");
};
});
//執(zhí)行sql語句
connection.query("select 1+1 as result", function (err, rows, fields) {
if (err) {
console.log("[query] - " + err);
} else {
console.log("result is " + rows[0].result);
};
});
//向user表中插入數(shù)據(jù)
var userAddSql = "insert into users(createTime,header,nickName,sex) value(now(),?,?,1);";
var userAddSql_params = ["1.jpg", "wolfy"];
//執(zhí)行sql語句
connection.query(userAddSql, userAddSql_params, function (err, result) {
if (err) {
console.log("[insert] - " + err);
} else {
console.log(result);
};
});
//斷開連接
connection.end();
結果


改
//改
var userUpdateSql="update users set header=? where id=?;";
var userUpdateSql_params=["2.jpg",2];
connection.query(userUpdateSql, userUpdateSql_params, function (err, result) {
if (err) {
console.log("[update] - " + err);
} else {
console.log(result);
};
});
總結
通過上面的例子我們看到起主要作用還是sql語句以及參數(shù)化查詢,其他的跟sql語句相似。不再一一舉例。
相關文章
nodejs連接mongodb數(shù)據(jù)庫實現(xiàn)增刪改查
本篇文章主要結合了nodejs操作mongodb數(shù)據(jù)庫實現(xiàn)增刪改查,包括對數(shù)據(jù)庫的增加,刪除,查找和更新,有興趣的可以了解一下。2016-12-12
windows如何把已安裝的nodejs高版本降級為低版本(圖文教程)
這篇文章主要介紹了windows如何把已安裝的nodejs高版本降級為低版本,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法
這篇文章主要給大家介紹了在Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。2017-06-06
從reflect?metadata理解Nest實現(xiàn)原理
這篇文章主要為大家介紹了從reflect?metadata理解Nest實現(xiàn)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08

