Tym razem podsumuję sposoby dostępu do bazy Microsoft Sql Server z poziomu node.js.
Mamy ogólnie dwie wygodne opcje:
- Microsoft Driver for Node.JS for SQL Server Preview (natywny pakiet node.js)
- Edge.js (za pośrednictwem C#/.NET)
Jako że już sporo pisałem o Edge.js, dziś skupię się na dedykowanym pakiecie. Na początek kilka faktów:
- Obsługuje każdy MS SQL Server od wersji 2005
- Wymaga natywnego klienta dla MS SQL Server 2012
- Skompilowana wersja jest dostępna dla node.js 0.6 lub 0.8
- Bardzo prosty i wygodny w użyciu (JavaScript poraża swoją prostotą i dynamizmem, zamiast sporego całkiem kodu ADO.NET tutaj kilka linijek!)
- Zwraca metadane kolumn i dane z wierszy
- https://github.com/WindowsAzure/node-sqlserver/issues
- Testowałem na node.js 0.8.22 i MS SQL Server 2008 R2 oraz 2012.
Spróbujmy z node.js wywołać procedurę składowaną. Aby było ciekawiej weźmy taką, która zwraca dwa zbiory wyników. Odpowiedni kod w TypeScript/JavaScript wygląda następująco:
W przypadku wielu wyników callback w wywołaniu queryRaw jest wywoływany tyle razy, ile jest wyników (w moim przypadku dwa razy). Aby obsługa wielu rezultatów działała, używamy wywołania queryRaw z parametrem more. Bez niego zostanie zwrócony tylko pierwszy rezultat procedury. Wywołanie bez more zwykle stosujemy przy procedurach zwracających jeden wynik.
Kod z pętlami ma za zadanie zmienić strukturę zwracanych danych, tak by zamiast wszystkich metadanych kolumn i wierszy zwracać obiekty z odpowiednimi właściwościami. Zwracany do przeglądarki JSON wygląda w moim przypadku następująco:
Zmiana lub podmiana procedury w bazie powoduje zwracanie danych o innej strukturze bez żadnej modyfikacji kodu serwera. Pełna dynamiczność przy krótszym i prostszym kodzie niż C#. Do more with less!
Brak komentarzy:
Prześlij komentarz