使用Nodejs 连接数据库实现增删改查功能库

来源:互联网 发布:网络销售产品的价格 编辑:程序博客网 时间:2024/06/05 00:08

完成代码可去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 anywherevar 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', '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();

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







1 0
原创粉丝点击