Node.js と Microsoft SQL Server の扱い : パート 1
一連の記事では、SQL Server、MongoDB、Microsoft Azureなどの最も人気のある製品やプラットフォームでNode.jsを使用する方法、jQueryを使用してアプリケーションを作成する方法、jQuery UI、およびNode.jsを使用してIgnite UI
一連の記事では、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 Value | T-SQL Type |
|
Numeric values (integer, decimal, |
Float(53) |
|
ブーリアン |
Bit |
|
DateTime型 |
DateTimeOffset(3) |
| 糸 |
Nvarchar(max) |
Microsoft SQL Server のサポートを実装するモジュールは多数あります。特定のケースに最適なモジュールを選択するのは簡単ではありません。
どのNode.jsドライバーを選ぶべきですか?

この記事の目的は、MS SQL Server のより一般的なnode.jsモジュールを要約することです。モジュールを比較し、その長所と短所について説明します
Node.js Modules for Microsoft SQL Server
| #N | % | Node.js Module |
| #1 | 20.7% |
Microsoft Driver for Node.js for SQL Server (Windowsのみ) |
| #2 | 18.0% | |
| #3 | 12.3% | |
| #4 | 1.5% | |
| #5 | 0.4% | |
| #6 | 0.2% |
Microsoft Driver for Node.js for SQL Server (Windowsのみ) |
| #7 | 該当なし |
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に問題があります。
このモジュールでは、ドライバーをインストールする前に前提条件が必要です。
- Node.js – 可能であれば最新バージョンを使用しますが、ノード 0.6.10 以降でテストされています
- node-gyp – latest version installed globally (npm install -g node-gyp)
- python 2.7.x – node-gyp用(パス内にあることを確認してください)
- Visual C++ 2010 – Express エディションは Microsoft から無料で入手できます
- 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);
長所と短所

| driver | pros | 短所 |
| tedious, node-tds |
Lightweight , |
機能の制限 |
| msnodesql, node-sqlserver |
その他の機能 |
Many dependencies |
| node-sqlserver-unofficial |
msnodesql、node-sqlserver、 | 公式サポートなし Requires Windows |
| mssqlhelper | これは、TDS プロトコルの純粋な JS 実装です | 1人の寄稿者のみ 機能が制限されています。 |
| mssqlx | Mssqlx は、他のドライバーなしで、すべてのプラットフォーム、特に 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+、LinkedIn、Infragistics Friends ユーザー グループで連絡を取り合うと@Infragistics