2011-01-18 14 views
17

Zastanawiam się, czy ktoś był świadomy sposobu połączenia się z bazą danych Microsoft SQL z Node.js. Jestem świadomy sterowników MySQL, ale mam dane, które muszę pobrać z bazy danych MS SQL i wolę pobierać bezpośrednio z Node.js niż zhakować jakiś skrypt PHP.Łączenie ze zdalnym serwerem Microsoft SQL z Node.js

+0

Czy udało się to w końcu osiągnąć bez tworzenia proxy lub korzystania z ActiveX? – lo5

+3

Cieszę się, że właśnie natknąłem się na to, ponieważ zastanawiałem się, czy ktokolwiek byłby zainteresowany moim projektem node.js-mssql. Obecnie jest to bardzo elementarne, ale w tym tygodniu będę robił jeszcze jedną dużą akcję z większą funkcjonalnością :) https://github.com/orenmazor/node-tds –

+0

Czyste rozwiązanie javascript zapewnia plik node.js moduł [tds4node] (https://npmjs.org/package/tds4node). Link do GitHub: [tds] (https://github.com/ttghr/tds) – ttghr

Odpowiedz

9

podejrzewam musisz owinąć SQL Server z JSON wyprowadzania internetowej serwisu. Po stronie pozytywnej, powinno to być względnie łatwe do zrobienia.

byłoby miło, gdyby silnik JavaScript w node.js może to zrobić: (od How to connect to SQL Server database from JavaScript in the browser?):

var connection = new ActiveXObject("ADODB.Connection") ; 

var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;Password=<password>;Provider=SQLOLEDB"; 

connection.Open(connectionstring); 
var rs = new ActiveXObject("ADODB.Recordset"); 

rs.Open("SELECT * FROM table", connection); 
rs.MoveFirst 
while(!rs.eof) 
{ 
    document.write(rs.fields(1)); 
    rs.movenext; 
} 

rs.close; 
connection.close; 
+2

Czy powinienem przyjąć tę odpowiedź, ponieważ nie jest to już najlepsza odpowiedź w 2014 roku? Nie jestem pewien, czy zaniechanie przestarzałej odpowiedzi jest moralnie dopuszczalne. Spójrz tutaj na to, co moim zdaniem powinno być dzisiaj używane: http://stackoverflow.com/questions/5156806/node-js-and-microsoft-sql-server/22658512#22658512 –

+0

To już nie jest dobra odpowiedź w 2015 roku. [Sequelize] (https://github.com/sequelize/sequelize) (jeśli chcesz ORM) lub [Tedious] (https://github.com/pekim/tedious) są znacznie lepsze opcje. – treythomas123

2
+1

To wydanie zostało właśnie zaktualizowane ponownie dzisiaj. –

+1

Opcja MS wymaga zbudowania modułu binarnego i wydaje się być tylko oknem. – Tracker1

+0

Istnieje wiele sposobów, aby to zrobić. sterownik microsoft jest tylko jeden. Właściwie nie używam go z tego samego powodu, tylko z okien. :(Właśnie znalazłem to dzisiaj ... http://www.microsoft.com/en-us/download/details.aspx?id=28160 –

7

Polecam node-mssql, który jest ładnym opakowaniem dla innych złączy, domyślnie jest to mój poprzedni wybór (Tedious), który wprowadza nieco lepszy interfejs. Jest to implozja JavaScript, bez żadnych wymagań kompilacji, co oznacza, że ​​możesz pracować zarówno w środowisku Windows, jak i poza Windows.

Inną opcją, jeśli nie przeszkadza przynosząc .Net lub mono z mostu binarnego byłoby użyć edge.js. Które mogą być bardzo miłe, jeśli chcesz wykorzystać bibliotek .Net w node.js

node-tds jest opuszczony, node-odbc nie działa z systemem Windows, a kierowca MS node-sqlserver nie wydają się działać na innych niż Windows (i ma jakieś głupkowate wymagania).

+0

Prawie całkowicie się zgadzam, ale jeszcze lepiej jest użyć [węzła -mssql] (https://github.com/patriksimek/node-mssql), który otacza [żmudny] (https://github.com/pekim/tedious). Interfejs węzła-mssql jest [o wiele łatwiejszy] (http://stackoverflow.com/questions/5156806/node-js-and-microsoft-sql-server/22658512#22658512). A co do [node-sqlserver] (https://github.com/Azure/node) -sqlserver) sterownik MS, warto zauważyć, że wymaga to zwariowanej listy wymagań wstępnych, których nie powinieneś instalować na swoim serwerze Windows: –

+0

@ChristiaanWesterbeek dzięki za informację, zaktualizowałem moją odpowiedź do referencyjnego węzła-mssql, a także jako wzmianka o pliku edge.js teraz, gdy jest nieco bardziej dojrzały. – Tracker1

2

Nowa odpowiedź na 2015 rok: Pakiet ORM Sequelize obsługuje teraz MS SQL, używając sterownika Tedious pod pokrywami.

To najlepszy sposób na interakcję z serwerem Microsoft SQL Server.

Powiązane problemy