node.js操作mysql簡單實例
上篇文章介紹了node.js操作redis的簡單實例,這里介紹如何操作mysql。
安裝
安裝mysql模塊
cnpm install mysql

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

連接配置
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' ;與安全相關(guān)https://github.com/felixge/node-mysql/issues/501)
12.typeCast:是否將列值轉(zhuǎn)化為本地JavaScript類型值 (默認:true)
13.queryFormat:自定義query語句格式化方法 https://github.com/felixge/node-mysql#custom-format
14.supportBigNumbers:數(shù)據(jù)庫支持bigint或decimal類型列時,需要設(shè)此option為true (默認:false)
15.bigNumberStrings:supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字符串類型返回(默認:false)
16.dateStrings:強制timestamp,datetime,data類型以字符串類型返回,而不是JavaScript Date類型(默認:false)
17.debug:開啟調(diào)試(默認: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語句相似。不再一一舉例。
相關(guān)文章
從零學(xué)習(xí)node.js之詳解異步控制工具async(八)
sync是一個流程控制工具包,提供了直接而強大的異步功能。基于JavaScript為Node.js設(shè)計,同時也可以直接在瀏覽器中使用。下面這篇文章主要介紹了node.js之異步控制工具async的相關(guān)資料,需要的朋友可以參考下。2017-02-02
Node.JS中快速掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)器地址(80)
在 Node.JS 中進行端口掃描還是比較方便的,一般會有廣播和輪詢兩種方式。下文重點給大家介紹node.js 掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的web服務(wù)器地址的方法,一起看看吧2017-09-09
Node.js使用第三方插件nodemailer實現(xiàn)郵件發(fā)送示例
這篇文章主要為大家介紹了Node.js使用第三方插件nodemailer實現(xiàn)郵件發(fā)送示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
express結(jié)合nodejs開啟服務(wù)示例模版
這篇文章主要為大家展現(xiàn)了express結(jié)合nodejs開啟服務(wù)的代碼示例模版,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04
Node.js入門教程:在windows和Linux上安裝配置Node.js圖文教程
這篇文章主要介紹了Node.js入門教程:在windows和Linux上安裝配置Node.js的方法,本文圖文并茂,步驟明細,是學(xué)習(xí)安裝node.js的絕佳教程,需要的朋友可以參考下2014-08-08
Webpack打包構(gòu)建太慢試試這幾個提升打包速度方案
在大型項目開發(fā)中,Webpack打包速度過慢會嚴重影響開發(fā)效率,本文介紹了幾種優(yōu)化Webpack打包速度的策略,包括減少文件搜索范圍、優(yōu)化Loader緩存、并行處理、減少打包體積、開發(fā)模式優(yōu)化以及插件優(yōu)化等,需要的朋友可以參考下2024-11-11
參考?EventEmitter實現(xiàn)一個簡單的訂閱發(fā)布功能函數(shù)
這篇文章主要為大家介紹了參考?EventEmitter實現(xiàn)一個簡單的訂閱發(fā)布功能函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02

