如何使用量角器创建Azure SQL数据库连接?

问题描述

如何使用量角器创建Azure sql数据库连接?任何人都可以帮助使用Typescript编写的代码吗?

解决方法

您可以使用乏味的mmmmsql,sequelize和其他库来在nodejs中操作sqlserver数据库。

例如:

MSDBClient.ts


import mssql = require('mssql');

// 定义数据查询回调接口
export declare type OnQueryCallback = (err: Error,rc: any) => void
export declare type OnExecCallback = (err: Error,rc: boolean) => void

export class MSSQLDBClient {
  // url
  constr: string;

  constructor(username: string,password: string,host: string,port: number,dbName: string) {
    this.constr = this.constr = `mssql://${username}:${password}@${host}:${port}/${dbName}`;
    mssql.connect(this.constr).then(function () {
      console.log('----------------');
      console.log('-login success-');
      console.log('----------------');
    }).catch(function (err) {
      console.log(err);
    })
  }

  public async query(strSql: string,cb: OnQueryCallback) {
    try {
      await mssql.connect(this.constr).then(function() {
        new mssql.Request().query(strSql).then(function(result) {
          // console.log(result);
          if (cb) cb(null,result);
        }).catch(function(err) {
          console.log(err);
          if (cb) cb(err,null);
        });
        // Stored Procedure
    }).catch(function(err) {
      console.log(err);
      if (cb) cb(err,null);
    })
    } catch (err) {
      console.log(err);
      if (cb) cb(err,null);
    } 
  }


  public async exec(strSql: string,cb: OnExecCallback) {
    await mssql.connect(this.constr,function () {
      mssql.query(strSql,function (err,data) {
        if (err) {
          if (cb) cb(err,false);
        } else {
          if (cb) cb(null,true);
          mssql.close();
        }
      });
    }
    );
  } 
}