使用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 %s %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', 'km@126.com', 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', 'Eric@126.com', 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();

以上就是数据库的基本操作了。

原文地址:https://www.cnblogs.com/onesea/p/15033707.html