1. 程式人生 > 其它 >使用Nodejs 連線資料庫實現增刪改查功能庫

使用Nodejs 連線資料庫實現增刪改查功能庫

完成程式碼可去github檢視下載,有更多功能

最近開始接觸Nodejs, 前人已經有很多成熟的案例,自己寫下來備忘的同時希望能幫助那些剛開始的同學。

準備工作:安裝mysql 包,不清楚的話可以查npm的使用方法,windows 的同學可能是用cnpm更好些,開啟terminal 或者 cmd(windows)進入你的專案目錄,執行如下命令

npm install mysql

下面是查詢資料庫的類,sql 在外部傳入,通過回撥把結果返回。可以在其他地方初始化例項或者繼承此類從而達到連線的目的
'use strict'
var mysql = require('mysql');

function DB() {
if (this instanceof DB) {
this.connect();
} else {
throw {
error_msg: 'Please create the constructor of DB like this: "var _db = new DB();"'
}
}
}
DB.prototype.connect = function() {
this.DATABASE = 'philip';
this.client = mysql.createConnection({
user: 'root',
password: '123456',
});

this.client.connect();
this.client.query("use " + this.DATABASE);
}
DB.prototype.doSelect = function(sql, callback) {
var self = this;
self.client.query(
sql,
function selectCb(err, results) {
if (err) {
throw err;
}
if(results && typeof callback ==='function')
{
callback(results);
}
self.client.end();
}
);
}
DB.prototype.doInsert = function(sql, params, callback) {
var self = this;
self.client.query(
sql,
params,
function (err, results) {
if(err){
throw err;
}
if(results && typeof callback ==='function')
{
callback(results);
}
self.client.end();
}
);
}
DB.prototype.doUpdate = function(sql, params, callback) {
var self = this;
self.client.query(
sql,
params,
function (err, results) {
if(err){
throw err;
}
if(results && typeof callback ==='function')
{
callback(results);
}
self.client.end();
}
);
}
DB.prototype.doDelete = function(sql, callback) {
var self = this;
self.client.query(
sql,
function (err, results) {
if(err){
throw err;
}
if(results && typeof callback ==='function')
{
callback(results);
}
self.client.end();
}
);
}

當你想在其他地方使用時,可以像如下方式使用 DB 類
// you can use it anywhere
var selectUserInfo = function() {
try{
var _db = new DB();
// test the error message
// DB();
var strSql = 'SELECT name, email, phone FROM user ';
_db.doSelect(
strSql,
function(results) {
for(var i = 0; i < results.length; i++){
console.log("%s\t%s\t%d", results[i].name, results[i].email, results[i].phone);
};
}
);
_db = null;
} catch(err) {
console.log(err.error_msg);
}
}
selectUserInfo();

var insertUser = function() {
try{
var _db = new DB();
var strSql = 'INSERT INTO user ' +
'(account, password, name, email, phone) VALUES(?,?,?,?,?)';
var params = ['km', '123', 'km', '[email protected]', 123456];
_db.doInsert(
strSql,
params,
function(results) {
console.info(results);
}
);
_db = null;
} catch(err) {
console.log(err.error_msg);
}
}
insertUser();

var updateUser = function() {
try{
var _db = new DB();
var strSql = 'UPDATE user SET name = ?, email = ? WHERE ID = ?';
var params = ['Eric', '[email protected]', 4];
_db.doUpdate(
strSql,
params,
function(results) {
console.info(results);
}
);
_db = null;
} catch(err) {
console.log(err.error_msg);
}
}
updateUser();

var deleteUser = function() {
try{
var _db = new DB();
var strSql = 'DELETE FROM user WHERE ID = 4';
_db.doDelete(
strSql,
function(results) {
console.info(results);
}
);
_db = null;
} catch(err) {
console.log(err.error_msg);
}
}
deleteUser();

以上就是資料庫的基本操作了。