내용으로 건너뛰기
Node.js 및 Microsoft SQL Server 다루기: 1부

Node.js 및 Microsoft SQL Server 다루기: 1부

일련의 기사에서는 SQL Server, MongoDB, Microsoft Azure와 같은 가장 인기 있는 제품 및 플랫폼에서 Node.js 사용하는 방법, jQuery, jQuery UI 및 Ignite UI with Node.js를 사용하여 응용 프로그램을 만드는 방법을 살펴봅니다.

8min read

일련의 기사에서는 SQL Server, MongoDB, Microsoft Azure와 같은 가장 인기 있는 제품 및 플랫폼에서 Node.js 사용하는 방법, jQuery, jQuery UI 및 Ignite UI with Node.js를 사용하여 응용 프로그램을 만드는 방법을 살펴봅니다.

첫 번째 게시물은 노드 및 Microsoft SQL Server 전용입니다. 먼저 많은 회사와 전문가가 솔루션에 Node.js를 사용하는 것을 선호하는 이유를 설명하겠습니다.

Why Node.js?

Node.js 들어본 적이 없는 사람들을 위해 설명하자면, 본질적으로 서버 측 JavaScript입니다.

아래의 몇 가지 장점을 살펴볼 수 있습니다.

  • 실질적으로 설치가 필요하지 않습니다.
  • 매우 가볍습니다 (MS Windows 플랫폼 용 7MB 정적 exe 1 개)
  • Node.js는 비동기 프로그래밍 및 Inversion of Control과 같은 즉시 사용 가능한 좋은 소프트웨어 관행을 장려합니다
  • Node.js uses JavaScript syntax.
  • 전 세계적으로 100,000,000명 이상의 WEB 개발자가 JavaScript를 사용하고 있습니다!
  • 현실적인 이유:
    JS를 사용한 크로스 플랫폼 응용 프로그램은 더 빠르고 쉬울 것입니다.
  • JavaScript의 좋은 부분은 정말 훌륭합니다
  • 브라우저와 서버를 위한 단일 언어
  • 기본적으로 비동기
  • 100만 개 이상의 동시 요청

 

그러나 이것은 또 다른 트렌디한 프로그래밍 언어가 아닙니다 – LinkedIn 및 Walmart와 같은 회사들은 이미 이 언어를 사용하고 있으며 다른 많은 버그 IT 회사들은 이미 Node.js를 사용하거나 플랫폼에 노드 지원을 추가할 것이라고 발표했습니다. 2011 년 7 월 Microsoft는 MS Windows 용 Node.js 이식했으며 2011 년 11 월에는 Node.js에 대한 Microsoft Azure (이전 Windows Azure) 지원을 발표했습니다.

Node.js은 Microsoft Azure 모바일 서비스에도 사용됩니다.

노드는 백엔드의 기본 플랫폼으로 사용됩니다. Azure SQL Database에서 작동하며 개발자를 위해 즉시 제공됩니다.
JSON에서 SQL 유형 매핑에 대해서만 알면 됩니다

JSON과 SQL 형식 매핑 – Azure 모바일 서비스(Node.js 포함)

JASON ValueT-SQL Type

Numeric values (integer, decimal,
floating point)

Float(53)

부울

Bit

날짜 시간

DateTimeOffset(3)

Nvarchar(max)

Microsoft SQL Server에 대한 지원을 구현하는 많은 모듈이 있습니다. 특정 사례에 가장 적합한 모듈을 선택하는 것은 쉽지 않습니다.

어떤 Node.js 드라이버를 선택해야 합니까?

어떤 Node.js 드라이버를 선택해야 합니까?

이 기사의 목적은 MS SQL Server에 널리 사용되는 node.js 모듈을 요약하는 것입니다. 모듈을 비교하고 장점과 단점을 설명합니다

Node.js Modules for Microsoft SQL Server

#N%Node.js Module
#120.7%

node-sqlserver

Microsoft Driver for Node.js for SQL Server

(Windows만 해당)

#218.0%

tedious

MS에 연결하기 위한 TDS 드라이버SQLServer 

#312.3%

node-tds

Microsoft SQL Server에 연결하기 위한 TDS 클라이언트

#41.5%

mssqlhelper

Microsoft SQL Server database helper

#50.4%

mssqlx

NodeJs Microsoft SQL Server Command Line Interface

#60.2%

msnodesql

Microsoft Driver for Node.js for SQL Server

(Windows만 해당)

#7해당 없음

node-sqlserver-unofficial

Microsoft Driver for Node.js for SQL Server – unofficial distribution

#8해당 없음Ende.js 및 Edge-sql
edge.js용 SQL 컴파일러. Edge.js 및 ADO.NET 를 사용하여 Node.js에서 SQL 데이터베이스에 액세스할 수 있습니다.
  • node-sqlserver & msnodesql

두 드라이버 모두 GitHub 리포지토리 –https://github.com/Azure/node-sqlserver의 동일한 코드를 사용하지만 다른 npm 패키지를 사용합니다.

이것은 SQL Server 및 Azure SQL Database 용 Microsoft의 Node.js 드라이버입니다 : SQL Server Native Client 11.0을 기반으로하는 Node.js 모듈입니다 - Microsoft SQL Server 2012 Native Client로 사용할 수 있으며 다음에서 찾을 수 있습니다.
SQL (영문)Server 2012 기능.

node-sqlserver / msnodesql 및 WIndows 7.x / Windows 8.x에 문제가 있습니다.
이 모듈에는 드라이버를 설치하기 전에 필수 구성 요소가 필요합니다.

  1. Node.js – 가능하면 최신 버전을 사용하지만 노드 0.6.10 이상에서 테스트되었습니다.
  2. node-gyp – latest version installed globally (npm install -g node-gyp)
  3. Python 2.7.x – node-gyp의 경우 (경로에 있는지 확인)
  4. Visual C++ 2010 – Express Edition은 Microsoft에서 무료로 사용할 수 있습니다.
  5. SQL Server Native Client 11.0 – SQL Server 2012 기능 팩에서 Microsoft SQL Server 2012 Native Client로 사용 가능

실제 Windows 플랫폼에 이러한 모듈을 설치하는 것은 추가 오버헤드입니다 – 다른 라이브러리와 프레임워크의 이전 버전이 있어야 합니다. 그렇기 때문에 " 공식 " 드라이버를 사용하지 않는 것이 좋습니다.

 

  • node-sqlserver-unofficial

이것은 동일한 GitHub 저장소 –https://github.com/Azure/node-sqlserver를 사용하는 해당 드라이버(node-sqlserver /msnodesql )의 비공식 바이너리 배포판입니다.
이 드라이버를 사용할 계획이라면 소스에서 컴파일 할 필요가 없습니다 (Visual Studio가 필요하고 일부 사람들을 완전히 혼란스럽게 함). x86 및 x64 모두에서 실행되며 노드 버전 0.8 및 0.10으로 실행됩니다. Azure 웹 사이트에서 node-sqlserver-unofficial을 실행하기 위해 해결 방법을 사용할 필요가 없습니다.

 

  • tedious

Microsoft SQL Server 데이터베이스에 연결하기 위한 TDS 드라이버입니다. Tedious는 Microsoft의 SQL Server 인스턴스와 상호 작용하는 데 사용되는 TDS 프로토콜의 구현입니다. 너무 많은 추가 기능이 없는 프로토콜의 상당히 슬림한 구현이 되도록 의도되었습니다. Tedious는 종속성과 마찬가지로 순수한 JavaScript입니다. (소스는 CoffeeScript 입니다.) 따라서 Node가 지원되는 모든 플랫폼에서 변경 없이 실행되어야 합니다. 지루한 드라이버는 2000년부터 2014년까지의 모든 SQL Server 버전과 호환됩니다. 이후 버전의 TDS 프로토콜은 향후 지원될 수 있지만 이전 버전은 지원되지 않을 것입니다. npm 패키지 또는 GitHub에서 지루해질 수 있습니다 –ttps://github.com/pekim/tedious 

 

  • node-tds

Microsoft SQL Server 2005 이상에 액세스할 수 있는 모듈입니다. GitHub에서 호스팅되는 TDS 프로토콜의 순수 JS 구현입니다. Node-tds 는 tedious 와 유사합니다. tds npm 패키지로 설치하거나 GitHub https://github.com/cretz/node-tds 의 소스 코드일 수 있습니다.

 

  •  mssqlhelper

Microsoft SQL Server 도우미입니다. Mssqlhelper는 대부분 한 명의 기여자만 JavaScript 모듈로 작성됩니다.  모든 소스 코드 줄의 21%가 주석이며, 이에 비해 MSSQLHeald는 6%의 코드만 주석으로 처리되어 있습니다. 여기에서 mssqlhelper npm 패키지를 설치하거나 GitHub:에서 소스 코드를 찾을 수 있습니다 https://github.com/play175/mssqlhelper    

 

  • mssqlx

Microsoft SQL Server nodejs 명령 줄 인터페이스입니다.  Mssqlx는 모든 플랫폼, 특히 Mac 및 Unix에서 다른 드라이버없이 nodejs 만 잘 작동해야합니다. 현재 이것은 명령 줄에서만 작동하며 다음 버전은 스트림 API를 통해 작동합니다. 이 프로젝트의 목표는 mssql을 쿼리하기 위한 멋진 cli 경험을 만드는 것이며, futon-cli의 발자취를 따르기를 희망합니다.  이 mssqlx npm 패키지를 사용하거나 GitHub:에서 소스 코드를 찾을 수 있습니다 http://jackhq.tumblr.com/post/27992293043/mssqlx 

 

  • Edge.js and edge-sql

Edge.js는 .NET 코드 및 어셈블리를 Node.js와 동일한 프로세스에서 실행할 수 있도록 하는 Node.js 모듈입니다. 이를 통해 Node.js 개발자는 전통적으로 사용하기 매우 어렵거나 불가능했던 기술을 활용할 수 있습니다. MS SQL 서버에 연결하고, 쿼리를 실행하고, 결과를 처리하는 전체 논리로 .NET 라이브러리를 만들 수 있으며 Edge-js를 사용하여 Node.js 애플리케이션에서 이러한 라이브러리를 사용할 수 있습니다.

.NET 클래스 라이브러리 만들기

public class Sample1
{
    public async Task<object> Invoke(object input)
   {
         ....
   }
   public async Task<List<SampleUser>> QueryUsers(int pageNumber, int pageSize)
   {
         ....
   }
}

Using a .NET library in Node.js + Edje.js application

// Set up the assembly to call from Node.js
var querySample = edge.func({
    assemblyFile: 'EdgeSampleLibrary.dll',
    typeName: 'EdgeSampleLibrary.Sample1',
    methodName: 'Invoke'
});

Edge-sql은 edge.js용 SQL 컴파일러입니다. Edge.js 및 ADO.NET 를 사용하여 Node.js에서 SQL 데이터베이스에 액세스할 수 있습니다. edge-sql을 통해 Edge.js 사용하여 SQL Server를 개별적으로 쿼리 할 수 있습니다.

var params = {
    connectionString: "Data Source=IGBGSOFEV06\\SQLEXPRESS;Initial Catalog=NodeJS;Integrated Security=True“ ,
    source: "SELECT TOP 5 * FROM SampleUsers ORDER BY CreateDate DESC"
};
 
var getTopUsers = edge.func( 'sql‘ , params);

장점과 단점

 

driverpros죄수
tedious, node-tds

Lightweight ,
JS implementation,
no dependencies

제한된 기능
통합 인증을 사용할 수 없습니다.

msnodesql, node-sqlserver

더 많은 기능

Many dependencies
No actual builds
Requires custom build
Requires Windows

node-sqlserver-unofficial

msnodesql, node-sqlserver,
그러나 공식 배포판과 관련된 대부분의 문제는 수정되었습니다

공식 지원 없음

Requires Windows

mssqlhelperTDS 프로토콜의 순수한 JS 구현입니다한 명의 기여자만
기능이 제한됩니다.
mssqlxMssqlx는 다른 드라이버 없이 모든 플랫폼, 특히 Mac 및 Unix에서 훌륭하게 작동합니다
지루한 기반
명령 줄에서만 작동합니다
Edge.js and edge-sql

모든 SQL 표현식을 실행할 수 있으며 통합 보안을 사용하여 연결할 수 있습니다.

Requires .Net 4.5

Windows에서만 실행할 수 있습니다.

이 기사의 다음 부분에서는 MS SQL Server에 대해 다른 Node.js 모듈을 사용하는 방법을 배울 수 있습니다. 모범 사례를 살펴보고 다양한 사용 사례를 다룰 것입니다.

If you want more information about how to use Microsoft SQL Server & Node.js feel free to contact me at mmateev@infragistics.com

Twitter에서 팔로우하고 @mihailmateev and @ Infragistics에서 팔로우하고 Facebook, Google+, LinkedInInfragistics Friends 사용자 그룹에서 연락을 유지하면 Azure Bootcamp Bulgaria에 대해 자세히 알아볼 수 있습니다.

데모 요청