programing

Node.js 및 Microsoft SQL Server

cafebook 2023. 7. 7. 21:07
반응형

Node.js 및 Microsoft SQL Server

Node.js 앱을 Microsoft SQL과 통신할 수 있는 방법이 있습니까?야생에서 MS SQL 드라이버를 본 적이 없습니까?

매우 간단한 앱을 함께 설치하고 있으며 기존 MS SQL 데이터베이스와 통신할 수 있어야 합니다(그렇지 않았다면 mongoDB 또는 Redis와 함께 사용했을 것입니다).

원래 질문은 오래되었고 이제 @Tracker1의 답변대로 Troug를 포장하는 @Patrik Shimek의 답변대로 node-mssql을 사용하는 것이 가장 좋은 방법입니다.

수락된 답변에 언급된 윈도우즈/Azure 노드-sql 서버 드라이버를 사용하려면 다음과 같은 필수 구성 요소 목록을 설치해야 합니다.서버에서 Visual C++ 2010, SQL Server Native Client 11.0, python 2.7.x 및 64비트용 Windows 7 SDK도 사용할 수 있습니다.이러한 GB의 소프트웨어를 Windows Server에 설치하고 싶지는 않을 것입니다.

당신은 정말로 지루함을 사용하고 싶어합니다.그러나 node-mssql을 사용하여 래핑하고 코딩을 훨씬 쉽게 할 수 있습니다.

2014년 8월 업데이트

  • 두 모듈 모두 여전히 활발하게 유지되고 있습니다.문제는 매우 신속하고 효율적으로 대응됩니다.
  • 두 모듈 모두 SQL Server 2000 - 2014를 지원합니다.
  • node-mssql 1.0.1 이후 스트리밍 지원

2015년 2월 업데이트 - 2.x(안정적, npm)

  • 최신 Tought 1.10으로 업데이트됨
  • 약속들
  • 객체 스트림에 대한 파이프 요청
  • 상세 SQL 오류
  • 트랜잭션 중단 처리
  • 통합 유형 검사
  • CLI
  • 사소한 수정 사항

이것은 명백합니다 지루합니다:

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;

var config = {
  server: '192.168.1.212',
  userName: 'test',
  password: 'test'
};

var connection = new Connection(config);

connection.on('connect', function(err) {
    executeStatement();
  }
);

function executeStatement() {
  request = new Request("select 42, 'hello world'", function(err, rowCount) {
    if (err) {
      console.log(err);
    } else {
      console.log(rowCount + ' rows');
    }

    connection.close();
  });

  request.on('row', function(columns) {
    columns.forEach(function(column) {
      if (column.value === null) {
        console.log('NULL');
      } else {
        console.log(column.value);
      }
    });
  });

  request.on('done', function(rowCount, more) {
    console.log(rowCount + ' rows returned');
  });

  // In SQL Server 2000 you may need: connection.execSqlBatch(request);
  connection.execSql(request);
}

여기에 종속성으로 Troug가 있는 node-mssql이 있습니다.이거 써요!

var sql     = require('mssql');

var config = {
  server: '192.168.1.212',
  user:     'test',
  password: 'test'
};

sql.connect(config, function(err) {
    var request = new sql.Request();
    request.query("select 42, 'hello world'", function(err, recordset) {
        console.log(recordset);
    });
});

최근 몇 개의 새 node.js SQL 서버 클라이언트가 릴리스되었습니다.나는 node-tds라고 불리는 것을 썼고 또 다른 것은 지루하다고 불립니다.

방금 노드용 미리보기 드라이버를 출시했습니다.SQL 서버 연결을 위한 JS.http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-microsoft-driver-for-node-js-for-sql-server.aspx 에서 찾을 수 있습니다.

(다른 질문에서 내 대답을 반복합니다.)

다른 커넥터에 적합한 래퍼인 node-mssql을 추천합니다. 기본적으로 이전의 선택(Tedious)이 약간 더 나은 인터페이스를 제공합니다.이는 컴파일 요구사항이 없는 JavaScript 구현으로, 윈도우 환경과 비윈도우 환경에서 모두 작업할 수 있습니다.

괜찮으시다면 다른 선택지를 찾으세요.이진 브리지가 있는 Net 또는 Mono는 edge.js를 사용합니다.활용하고 싶다면 매우 유용할 수 있습니다.node.js의 Net 라이브러리

node-tds는 포기되고, node-odbc는 윈도우와 함께 작동하지 않으며, MS 노드-sql 서버 드라이버는 윈도우가 아닌 곳에서 작동하지 않는 것처럼 보입니다(그리고 몇 가지 어리석은 요구 사항이 있습니다).

node-mssql이라는 다른 모듈을 사용할 수 있습니다.다른 TDS 모듈을 드라이버로 사용하며 사용하기 쉬운 통합 인터페이스를 제공합니다.또한 추가 기능과 버그 수정을 추가합니다.

추가 기능:

  • 여러 MSSQL 드라이버를 위한 통합 인터페이스
  • 트랜잭션 및 준비된 문을 사용한 연결 풀링
  • 모든 드라이버에 대한 매개 변수화된 저장 프로시저
  • 지리 및 지오메트리 CLR 유형의 직렬화
  • 지능형 JS 데이터 유형에서 SQL 데이터 유형 매퍼
  • 약속 및 표준 콜백 모두 지원

node-tds.js를 사용할 수 있습니다.

node.js에 대한 TDS 프로토콜의 흥미로운 구현으로 sql 서버와의 통신이 가능합니다.

용도:

var mssql = require('./mssql');
var sqlserver = new mssql.mssql();
sqlserver.connect({'Server':__IP__,'Port':'1433','Database':'','User Id':'','Password':''});
var result = sqlserver.execute("SELECT * FROM wherever;");

TSQLFTW - T-SQL For The WIN (dows) - Fosco Marotto https://github.com/gfosco/tsqlftw

C# 및 ADO .NET 관리 코드 솔루션으로, Node.js가 가져오고 작업할 수 있는 C++ 래퍼가 있습니다.


.NET을 알고 있다면 WCF 데이터 서비스(ADO.NET 데이터 서비스)를 사용해 볼 수 있습니다. 데이터 액세스를 위한 WCF 앱을 작성하고 데이터베이스와 상호 작용하기 위해 Odata(스테로이드판 REST)를 사용할 수 있습니다.

  • WCF 데이터 서비스: http://msdn.microsoft.com/en-us/data/bb931106
  • OData: http://www.odata.org/

SOA에 관심이 있고 SQL Server 2005를 사용하는 경우 Microsoft SQL Server 2005용 Native XML 웹 서비스를 확인할 수 있습니다.

http://msdn.microsoft.com/en-us/library/ms345123(v=sql.90).aspx

웹 서비스(HTTP, SOAP)로 SQL Server에 액세스할 수 있습니다.

마이크로소프트(Windows Azure Team)는 SQL SERVER용 노드 드라이버를 출시했습니다.

제가 알기로는 npmyert를 위한 패키지는 없지만 오픈소스로 되어 있습니다.그리고 지역 사회의 공헌을 받아들이는 것도 마찬가지입니다.

https://github.com/WindowsAzure/node-sqlserver

블로그 소개 게시물은 다음과 같습니다.

http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-microsoft-driver-for-node-js-for-sql-server.aspx

는 프리즘을 보는 것을 제안합니다.방금(2020년 10월) SQL 서버에 대한 미리 보기 지원을 발표했습니다.

프리즘은 형식 안전과 개발자 경험에 중점을 둔 ORM입니다.일반적으로 테이블을 클래스에 매핑하는 기존 ORM과 달리 Prisma는 쿼리를 유형(TypeScript)에 매핑하고 쿼리에서 일반 개체를 반환합니다.

Prisma 및 SQL Server를 시작하려면 이 예제확인하고 문서의 처음부터 시작하십시오.

.NET look at entityspaces.jsat에서 실행 중인 경우 WCF JSON 서비스가 필요 없는 Node.js에 대한 전체 범용 ORM을 만들고 있습니다.https://github.com/EntitySpaces/entityspaces.js

MSFT 백엔드 기술을 사용하고 있다면 지금 사용할 수 있지만 범용 Node.js ORM을 만들고 있으며 조만간 이에 대한 자세한 정보를 얻을 수 있을 것입니다.

Microsoft에서 업데이트했습니다.여기 일련의 블로그 게시물이 있습니다(1부와 2부).

Node.js SQL Server 드라이버는 매우 미숙한 것 같습니다. 다양한 의존성, 성능 및 완성도 수준을 가진 다양한 프로젝트가 잘못 혼합되어 있지만, 어느 것도 자신감을 불러일으키지는 않습니다.

edge-sql을 사용할 것을 제안합니다.이는 .NET의 성숙한 데이터베이스 드라이버 에코시스템을 활용하며 에만 의존합니다.NET(Windows에서 노드를 실행 중인 경우에는 쉽게 해결할 수 있습니다. 그렇지 않으면 모노가 있지만 시도해 본 적이 없습니다.)

다음은 edge-sql을 사용하는 노드 예제(server.js)입니다(edge-sql 문서에 따라 연결 문자열을 환경 변수에 넣어야 함).

var edge = require('edge');

// edge-sql has built in support for T-SQL / MSSQL Server
var getData = edge.func('sql', function () {/*
    select top 10 * from sometable
*/
});

getData(null, function (error, result) {
    if (error) throw error;
    console.log(result);
});

.NET과 함께 Edge.js를 활용하여 오라클과 같은 다른 데이터베이스에 액세스할 수도 있습니다.저는 여기서 그 접근법의 예를 제시했습니다.

2016년 5월 기준 현황은 다음과 같습니다.

node-sql 서버라고 하는 공식 Microsoft SQL Driver for Node는 수년 동안 업데이트되지 않았습니다.

노드 버전 0.12.x 및 >= 4.1.x에서 작동하는 node-sqlserver-v8이라는 새로운 포크가 있습니다.이 포크에는 x64 및 x86 대상에 대한 사전 컴파일된 이진 파일도 있습니다.

패키지는 NPM에서 msnodesqlv8로 제공됩니다.

이 패키지는 가볍고(의존 관계가 없음) SQL LocalDB를 포함한 모든 최신 버전의 SQL Server에서 작동하는 유일한 패키지이기 때문에 추천합니다.

이제(2016) 다음을 지원하는 Sequetize ORM을 사용할 수 있습니다.

  • MySQL / MariaDB,
  • PostgreSQl
  • SQLite
  • Microsoft SQL Server

그것은 깃허브의 별들에 따라 널리 사용됩니다.

이 링크는 sql 2005 또는 sql 2008이 아닌 sql 2000 솔루션만 상세하게 설명하고, 또한 해당 코드는 sql 텍스트 전송만 허용하며, 저장 프로시저의 실행은 허용하지 않습니다.

실제 솔루션은 노드 JS를 리눅스 서버 또는 윈도우즈 시스템의 가상 리눅스 서버에 설치한 다음 마이크로소프트 웹 사이트로 이동하여 JDBC Java 드라이버를 다운로드하고 이러한 마이크로소프트 msql java jdbc 드라이버를 리눅스 서버 또는 리눅스 가상 서버에 설치하는 것입니다.

언급URL : https://stackoverflow.com/questions/5156806/node-js-and-microsoft-sql-server

반응형