コンテンツへスキップ
Node.js と Microsoft SQL Server の扱い : パート 1

Node.js と Microsoft SQL Server の扱い : パート 1

一連の記事では、SQL Server、MongoDB、Microsoft Azureなどの最も人気のある製品やプラットフォームでNode.jsを使用する方法、jQueryを使用してアプリケーションを作成する方法、jQuery UI、およびNode.jsを使用してIgnite UI

8min read

一連の記事では、SQL Server、MongoDB、Microsoft Azureなどの最も人気のある製品やプラットフォームでNode.jsを使用する方法、jQueryを使用してアプリケーションを作成する方法、jQuery UI、およびNode.jsを使用してIgnite UI

最初の投稿は、Node と Microsoft SQL Server に特化しています。まず、多くの企業や専門家がソリューションでNode.jsを使用することを好む理由を説明しましょう。

Why Node.js?

Node.js、聞いたことがない人のために説明すると、本質的にはサーバーサイドの JavaScript です。

以下の利点のいくつかを見てみましょう。

  • 実質的にインストールは不要
  • 非常に軽量(MS Windowsプラットフォーム用の7MBの静的exeを1つ)
  • Node.js、非同期プログラミングや制御の反転など、すぐに使用できる優れたソフトウェアプラクティスを奨励します
  • Node.js uses JavaScript syntax.
  • 世界中に100,000,000人以上のWEB開発者がJavaScriptを使用しています。
  • 現実的な理由:
    JS を使用したクロスプラットフォーム アプリケーションがより高速かつ簡単になります
  • JavaScriptの良いところは本当に素晴らしいです
  • ブラウザとサーバーの言語が 1 つ
  • 既定では非同期
  • 100 万件を超える同時要求

 

しかし、これは単なるトレンディなプログラミング言語ではなく、LinkedInやWalmartなどの企業がすでに使用しており、他の多くのバグIT企業はすでにNode.jsを使用しているか、プラットフォームにNodeサポートを追加すると発表しています。2011年7月、MicrosoftはNode.jsをMS Windows以降に移植し、2011年11月にMicrosoft Azure(旧Windows Azure)のNode.jsのサポートを発表しました

Node.js は Microsoft Azure Mobile Services にも使用されます

ノードは、バックエンドのデフォルトプラットフォームとして使用されます。Azure SQL Database で動作し、開発者向けにすぐに利用できます。
JSONからSQL型へのマッピングを知っているだけで済みます

JSON から SQL 型へのマッピング – Node.js を使用した Azure Mobile Services

JASON ValueT-SQL Type

Numeric values (integer, decimal,
floating point)

Float(53)

ブーリアン

Bit

DateTime型

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 エディションは Microsoft から無料で入手できます
  5. SQL Server Native Client 11.0 – SQL Server 2012 Feature Pack の 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 で実行されます。回避策を使用してnode-sqlserver-unofficial Azure Web サイトを実行する必要はありません。

 

  • 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は、ほとんどが1人のコントリビューターからのみJavaScriptモジュールで書かれています。 すべてのソース コード行の 21% がコメントであり、これに対し、mssqlhelper にはコメントされたコードの 6% しかありません。mssqlhelper npmパッケージはこちらからインストールするか、GitHubでソースコードを見つけることができますhttps://github.com/play175/mssqlhelper    

 

  • mssqlx

これは、Microsoft SQL Server nodejs コマンドライン インターフェイスです。 Mssqlxは、他のドライバーなしで、nodejsのみを使用して、すべてのプラットフォーム、特にMacとUnixでうまく動作するはずです。現在、これはコマンドラインでのみ機能し、次のバージョンはストリーム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 Server への接続方法、クエリの実行方法、結果の処理方法、および Edge-js を使用してNode.jsアプリケーションでこれらのライブラリを使用できるロジック全体を使用して .NET ライブラリを作成できます。

.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

mssqlhelperこれは、TDS プロトコルの純粋な JS 実装です1人の寄稿者のみ
機能が制限されています。
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

Azure Bootcamp Bulgaria の詳細については、Twitter でフォローし@mihailmateev​ ​Facebook、Google+LinkedInInfragistics Friends ユーザー グループで連絡を取り合うと@Infragistics

デモを予約