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提供的示例代碼快速上手了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章