使用Nodejs连接到SQL Server

经纬

有一个需求,需要从 Windows10 中的 Microsoft SQL Server 2012 中获取数据,并通过 FTPS 进行传输。我大概是在大约 20 年前接触过 SQL Server。
因为要求很简单,所以我决定使用 Nodejs 来完成。
这是当时的记录。

SQL驱动程序

假设已经在Windows 10上搭建了Node.js环境。
对于访问SQL Server,应该可以通过ODBC方式,但在查找过程中发现了以下页面。

SQL Server 的 Node.js 驱动程序

繁琐 – 概述

只需要一个程序来执行,因此进行本地安装。

npm install tedious

连接 (jiē​chù​)

假定已经存在连接用户。

const Connection = require('tedious').Connection;
const config = {
    server:DB_HOST,
    userName:DB_USER,
    password:DB_PASS,
    options:{
        database:DB_NAME,
        encrypt:false
    }
};

const connection = new Connection(config);
connection.on('connect', function(err) {
    if ( err ) {
        // ERROR - SQL Serer connect error.
        console.log('SQL Serer connect error.(' + err + ')');
        // 終了
        process.exit();
    }
    // Info - SQL Server connected.
    console.log('SQL Server connected.');
    // 接続したらクエリ実行
    execute();
});

执行

const Request = require('tedious').Request;
function execute() {
    // Query Request
    let sql = getQuery();
    const request = new Request(sql, function(err, rows) {
        if ( err ) {
            // ERROR - Query request error.
            console.log('Query request error.(' + err + '');
            process.exit();
        }
        // INFO - Run query. sql
        console.log('Run query. ' + sql);
        // close
        connection.close();
    });
    request.on('row', function(columns) {
       // 実行結果が返ってくる
         ....... 処理
    })
    // exec
    connection.execSql(request);
}
function getQuery() {
    // SQLを返す
    return sql;
}
广告
将在 10 秒后关闭
bannerAds