zoukankan      html  css  js  c++  java
  • node.js + 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的使用。

    越努力,越幸运。

  • 相关阅读:
    xiaopiu产品原型设计与团队实时协作平台
    asp.net webform过滤器(注意我们可以在拦截请求的同时设置回调函数)
    wdScrollTab
    pageoffice实现网页打开编辑保存word文档(基于SSM框架)
    ESB企业服务总线
    JRebel for IntelliJ
    dtcms 手机浏览
    maven仓库添加jar架包
    shell脚本实现FTP自动上传文件
    mysql创建数据库指定字符集
  • 原文地址:https://www.cnblogs.com/pingtouge/p/11139850.html
Copyright © 2011-2022 走看看