1. 程式人生 > >SQL Server 2008 R2 + Node.js

SQL Server 2008 R2 + Node.js

專案要求需要還原SQL Server 2008以前的.bak備份,並匯出CSV或XLSX,因此考慮將還原備份這件事打包成一個本地服務。在區域網內的一臺Windows伺服器上執行,通過RPC和RESTful方法來呼叫。但是畢竟很久不碰Windows了,所以上手遇到一些難度。


  1. 前期工作

    如果不得不在Windows下進行開發,最快速幫助你找回開發感覺的是一個順手的編輯器和命令列環境。cmder(命令列環境)和VSCode是你的好朋友。

  2. Node.js

    在Windows下也沒有homebrew或apt一類的東西,直接到官網下載MSI安裝包就可以了。

  3. SQL Server 2008 R2 Express

    如果想通過Node.js對資料庫進行查詢,可以使用

    Tedious.js。這是Node.js的TDS協議實現,能夠較好地相容各個SQL Server版本。然而對於一個新安裝的SQL Server 2008是沒法直接通過Node.js來連線的。你需要做幾件事:

    1. 允許SA (SQL authentication) 方式登入。你需要先進入SSMS (SQL Server Management Studio),以Windows賬戶直接登入Object Explorer。登入之後右鍵單擊Object Explorer的根目錄,也就是你的資料庫instance,在選單中選擇Properties,找到Security,在Server Authentication中選擇 “SQL Server and Windows Authentication Mode”。

      oYfFh.png



    2. 接下來,在Login中新建一個通過SQL Server Authentication方式登入的使用者賬戶,也就是要通過Node.js登入的使用者賬戶。

    3. 接下來要特別注意,Tedious.js的預設查詢埠是1433,但實際上SQL Server會用到一個動態埠。為了保證服務重啟之後Node.js server總是監聽同一個埠,要去 SQL Server Configuration Manager裡面,找到SQL Server Network Configuration中的TCP/IP裡進行設定,將TCP/IP中的Dynamic Ports置空,然後在TCP Port中寫下要監聽的埠。

      tcp-ports.png


接下來,你就可以根據Tedious.js提供的示例程式碼快速上手了。