ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

node.js + mssql 简易封装操作

2019-07-05 18:02:12  阅读:180  来源: 互联网

标签:node console log err param js helper mssql


时间吧,总是这么凑巧,在我学习【node.js】还没几天,我的 Microsoft SQL Server Management Studio 18 就歇菜了,至于怎么歇菜的吧....它可能的意思就是想让我换电脑了... 所以为了解决问题,就写了这个小东西满足需求;
....咳咳咳....

回归正题,开始最简易的封装数据操作。

首先老样子,先安装:

安装方法

npm install mssql

引入依赖

///引入依赖
const mssql = require('mssql');

配置Config

其实这里的config,和后端程序配置的web.config基本是一个意思。(可忽略 0.0)

code:

///引入依赖
const mssql = require('mssql');

//方法对象
const units = {
  sql: function (sql, callback) {
    ///连接池
    new mssql.ConnectionPool(units.config())
      .connect()
      .then(pool => {
        let ps = new mssql.PreparedStatement(pool);
        ps.prepare(sql, err => {
          if (err) {
            console.log(err);
            return;
          }
          ps.execute('', (err, result) => {
            if (err) {
              console.log(err);
              return;
            }
            ps.unprepare(err => {
              if (err) {
                console.log(err);
                callback(err, null);
                return;
              }
              callback(err, result);
            });
          });
        });
      }).catch(err => {
        console.log("Database Connection Failed! Bad Config:", err);
      });
  },
  /*
 * 默认config对象
 * @type {{user: string, password: string, server: string, database: string, pool: {min: number, idleTimeoutMillis: number}}}
 */
  config: function () {
    return {
      user: 'sa',                       //SQL Server 的登录名
      password: '123456',               //SQL Server 的登录密码
      server: 'localhost',              //SQL Server 的地址
      database: 'sale',                 //数据库名称
      port: 1433,                       //端口号,默认为1433
      pool: {
        min: 0,                         //连接池最小连接数,默认0
        max: 10,                        //连接池最大连接数,默认10
        idleTimeoutMillis: 3000         //设置关闭未使用连接的时间,单位ms默认30000
      },
      /*--其他属性--*/
      // connectionTimeout:             //连接timeout,单位ms 默认 15000
      // requestTimeout:                //请求timeout,单位ms默认15000
      // parseJSON:                     //将json数据集转化成json obj 
    }
  }
}

module.exports = units;

此上面这段代码就可以封装为一个命名为:helper.js(名字随意)。

然后就可以在其他的js里面来调用这个封装好的‘方法’:

const helper = require('./helper');

接下来就是写最基本的 参数化  批量:insert丶select丶update 丶delete :

const helper = require('./helper');
/*
 * 查询所有
 * @param tableName
 * @param result
 */
helper.sql('select * from dbo.tableName where 1 = 1', function (err, result) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('data :', result);
});

/*
 * 修改
 * @param updateObj     修改内容(必填)
 * @param whereObj      修改对象(必填)
 * @param tableName     表名
 * @param callBack(err,recordset)
 */
helper.sql("update dbo.tableName set name = @updateObj where id = @whereObj", err => {
    if (err) {
        console.log("error:" + err);
        return;
    } else {
        console.log('Ok!');
    }
});

/*
 * 添加
 * @param addObj    添加对象(必填)
 * @param tableName 表名
 * @param callBack(err,recordset)
 */
helper.sql("insert into dbo.tableName(obj)values(@addObj)", err => {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log("Ok!");
    }
})

/*
 * 删除
 * @param whereObj    删除对象(必填)
 * @param tableName 表名
 * @param callBack(err,recordset)
 */
helper.sql("delete dbo.tableName where 1 = 1 and id = @whereObj", err => {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log("Ok!");
    }
})

以上就实现了 最简易的node.js + mssql的使用。

 

越努力,越幸运。

<style></style>

标签:node,console,log,err,param,js,helper,mssql
来源: https://www.cnblogs.com/pingtouge/p/11139850.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有