nodejs的增删改查调用demo

查了很多资料都是直接使用curd的方法,都没有oop的使用方法,自己写一个

先上数据库操作类:dboperator.js



'use strict'
//引入mysql模块
var mysql = require('mysql');  
// function DB() {

var DB =function()  {
  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 = 'voiceinteractive';
  this.client = mysql.createConnection({  
    host: 'localhost', 
    user: 'root',  
    password: 'root',  
  });  
 
  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();
    }
  );
}

//导出Student类,使其他js文件可以通过require方法类加载该Student模块
module.exports=DB;

接着上调用方法index.js



var dbOperator= require('./dboperator.js'); // 引入该类
var count=0;
var receive_content;
// you can use it anywhere
var selectUserInfo = function()
{
    try{
         var _db = new dbOperator();//实例化该类
        // _db.DB();
      // DB();
      // _db.db();
        var strSql = ' SELECT * from `vi_skill_info`   ';
       // dbCls.DB();
    //  _db.prototype.doSelect(

        _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);
        };
            count=   results.length ;
            receive_content=results[0].vi_receive_info;
        }
      );
      _db = null;
 
    }
     catch(err)
    {
      console.log("selectUserInfo  error: "+err);
    }
  }


  selectUserInfo();
   



var http=require("http");
var url=require('url');

http.createServer(function(req,res)
{
    res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
   // res.writeHead(200, {'Content-Type': 'text/plain'});

    res.write('<h4>');
    res.write('nodejs  搭建成功 ! <br>');
    res.write('表内数据共计:'+count+' 条'+receive_content);

    res.write('</h4><br>');
  
    // 解析 url 参数
     var params = url.parse(req.url, true).query;
     res.write("网站URL:<a href='"+params.url+"'>连接</a><br>" );

     res.write((new Date()).Format("yyyy-MM-dd hh:mm:ss")); // 2018-08-02 21:22:07

    // 终端打印如下信息
    console.log('Server running at ' + receive_content);
    res.end();
}).listen(3000);


/**
 * 扩展Date的Format函数
 * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
 * @param {[type]} fmt [description]
 */
Date.prototype.Format = function(fmt) 
{ //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值